Как вы используете в Travis-CI несколько базовых платформ для тестирования базовых модулей до tnet? - PullRequest
0 голосов
/ 24 февраля 2020

Я разрабатываю API-интерфейс для .NetStandard и хочу протестировать его с различными версиями .NetCore.

Я хотел бы запустить свои модульные тесты для всех поддерживаемых в настоящее время версий LTS .NetCore, однако Я не могу понять, как создать модульные тесты на основе установленного в настоящее время SDK.

В настоящее время поддерживаются версии .NetCore 2.1 и 3.1. Я могу использовать <TargetFrameworks>, чтобы указать, что проект модульного теста может обрабатывать обе эти цели, и когда я запускаю на своем компьютере разработчика, все работает отлично. Однако, в отличие от моей машины разработчика, когда Travis запускает тесты, устанавливается только один SDK (что хорошо - я хочу точно знать, с чем я тестирую). Тем не менее, в рамках проекта модульного тестирования ожидается представление обоих SDK. Если я нацеливаюсь только на 2,1, это не удается для 3.1 на Travis, а если я нацеливаюсь на 3.1, это не работает на 2.1.

Итак, есть ли способ проверить обе версии LTS .NetCore на Travis-CI с одним модульный тестовый проект?

1 Ответ

0 голосов
/ 25 февраля 2020

удалось заставить его работать.

  1. В проекте модульного тестирования используйте TargetFrameworks вместо TargetFramework для нацеливания на несколько фреймворков. Я считаю, что вы должны отредактировать файл csproj вручную, я не думаю, что есть способ установить его из пользовательского интерфейса Visual Studio. <TargetFrameworks>netcoreapp2.1;netcoreapp3.1</TargetFrameworks>
  2. В .travis.yml включите один фреймворк в раздел dotnet:, явно установите другой фреймворк в раздел before_install:, затем явным образом вызовите тесты с каждым фреймворком в script: раздел:
dotnet: # Include one of the frameworks
  - 2.1.804 # EOL for 2.1: 2021.08.21
before_install:
  # explicitly install other targeted SDKs side by side
  - sudo apt-get install dotnet-sdk-3.1
script:
  # explicitly identify the framework when invoking the tests
  - dotnet test UnitTests/UnitTests.csproj -f netcoreapp2.1
  - dotnet test UnitTests/UnitTests.csproj -f netcoreapp3.1
...