Как запустить модульные тесты для. NET Framework 4.7 с Travis-CI? - PullRequest
1 голос
/ 02 апреля 2020

Я пытаюсь запустить тесты для моего проекта в Travis-CI . Мой проект структурирован так:

.
|-- src (.NET Framework 4.7 class library)
|-- test (.NET Core 3.1 unit test project using MSTest)

Я не могу изменить проект в ./src на. NET core.

Мой .travis.yml выглядит так:

language: csharp
mono: none
dotnet: 3.1.200
before_install: cd test
script:
  - dotnet restore
#  - dotnet add package Microsoft.NETFramework.ReferenceAssemblies.net47 --version 1.0.0
  - dotnet test /p:CollectCoverage=true

Вторая строка в script - это то, что я пробовал, но это не помогло.

Было бы здорово, если бы кто-нибудь мог привести меня к решению этой проблемы. Или скажите мне, что это не работает.

1 Ответ

0 голосов
/ 03 апреля 2020

Итак, через некоторое время я заработал.

.travis.yml должно выглядеть так:

language: csharp
mono: latest
dotnet: 3.1.200
before_install:
  - cd src
script:
  - dotnet restore
  - msbuild
  - dotnet test ../tests/bin/Debug/netcoreapp3.1/tests.dll

Объяснение:

  • Мы нужно. Net Core для создания tests. NET Core проекта и Mono для создания src. NET 4.7.
  • Невозможно использовать dotnet build для построения . NET 4.7, вместо этого следует использовать команду msbuild от Mono.
  • Команда dotnet test работает только в том случае, если указан путь к tests.dll

Дополнительные примечания:

  • Установка Mono занимает много времени (~ 7 минут), что замедляет сборку. Возможно, стоит взглянуть на использование контейнера mono docker.
...