Запуск в "Не указаны файлы отчетов" при попытке создать тестовое покрытие в конвейере Docker (Linux) - PullRequest
0 голосов
/ 20 февраля 2019

Я использую докер-конвейер на основе linux для создания и автоматического тестирования с помощью NUnit Framework в решении C # - .NET-Core .

«Тест» в моем файле .gitlab-ci.yml:

runTests:
  stage: test
  image: docker-registry.xyz.de/${CI_PROJECT_PATH}/build:${CI_COMMIT_REF_SLUG}_backend_${CI_COMMIT_SHA}
  services:
    - name: atsnngs/mysql-aurora-compatible
      alias: mysql_test

  tags:
    - docker
    - linux
    - shared
  variables:
    GIT_STRATEGY: none
  artifacts:
    expire_in: 30m
    paths:
      - $CI_PROJECT_DIR/pages
  script:
    - mkdir $CI_PROJECT_DIR/pages
    - mkdir mkdir /tmp/pages
    - cd /app
    - nohup dotnet run --project ./ServiceLoader/ServiceLoader.csproj Test > dotnetcore.log &
    - sleep 10s && dotnet test -v normal /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:Exclude=[NUnit3.TestAdapter]*
    - reportgenerator -reports:/app/Tests/coverage.opencover.xml -targetdir:/tmp/pages
    - ls -l /tmp/pages
    - mv /tmp/pages/index.htm /tmp/pages/index.html
    - mv /tmp/pages $CI_PROJECT_DIR/
  dependencies:
    - build

В файле Docker, который я использую для создания образа, который я использую для выполнения тестирования, я устанавливаюсредство создания отчетов (по причинам читабельности я пропустил части восстановления и построения dotnet файла Dockerfile):

FROM microsoft/dotnet:2.1-sdk AS build

# install reportgenerator
RUN dotnet tool install --global dotnet-reportgenerator-globaltool
ENV PATH /root/.dotnet/tools:$PATH

Но когда я запустил конвейер, генерация отчетов завершается неудачно:

$ reportgenerator -reports:/app/Tests/coverage.opencover.xml -targetdir:/tmp/pages
No report files specified.

Я уже сравнил файл Dockerfile и .gitlab-ci.yml с другим проектом. Я использовал этот подход и не смог найти различий, которые могли бы объяснить эту ошибку.Есть ли другое место, где мне нужно взглянуть?

Любая помощь высоко ценится!

1 Ответ

0 голосов
/ 21 февраля 2019

Проблема решена путем добавления пакетов Nuget для coverlet.msbuild и dotnet-reportgenerator-cli .Эти пакеты отсутствуют и приводят к ошибке при генерации отчета.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <IsTestProject>true</IsTestProject>
    <IsPackable>false</IsPackable>
    ...
  </PropertyGroup>

  <ItemGroup>
    ...
    <PackageReference Include="Nunit" Version="3.11.0" />
    <PackageReference Include="NUnit3TestAdapter" Version="3.12.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
    <PackageReference Include="coverlet.msbuild" Version="2.4.0" />
    <PackageReference Include="dotnet-reportgenerator-cli" Version="4.0.5-rc2" />

  </ItemGroup>

</Project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...