我如何 运行 使用 Travis-CI 对 .NET Framework 4.7 进行单元测试?

How do I run Unit Tests for .NET Framework 4.7 with Travis-CI?

我尝试 运行 在 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 中的第二行是我试过的,但没有用。

如果有人能引导我解决这个问题,那就太好了。或者告诉我这不起作用。

所以过了很长一段时间我才开始工作。

.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 项目,必须使用 Mono 中的 msbuild 命令。
  • dotnet test 命令只有在提供 tests.dll 的路径时才有效

补充说明:

  • 安装 Mono 需要很长时间(约 7 分钟),这使得构建速度很慢。也许值得考虑使用 mono docker 容器。