目前,c# 中的单元测试需要大量的 shell 参数: 当使用 shell 代替 Visual Studio 时,如何简化 c# 中的单元测试执行?
这就是为什么我要尝试创建一个自定义任务,以便能够使用 one line 运行测试和代码覆盖率,并为 Windows 开发人员保持跨平台。
我试过像
dotnet foo
这样的东西,但我找不到任何官方或解决方法。
以下任务有效
<Target Name="Foo">
<Message Text="This is a Foo task" />
</Target>
dotnet msbuild -target:Foo
但问题是:此命令加载主要的./src/Main.csproj,而不是测试的./test/Test.csproj,因此自定义任务(用于单元测试)应该在Main .csproj,这没有意义
./src
./src/Controllers
./src/Controllers/**
./src/Main.csproj
./src/Startup.cs
./test
./test/Controllers
./test/Controllers/**
./test/Test.csproj
我尝试通过./test/Test.csproj的相对位置与
--project
没有成功但是引发了另一个错误:
error MSB1001: Unknown switch.
所以我的问题是:
如何创建一个只用于单元测试的自定义任务?
MSBuild 没有
--project
开关。请参阅MSBuild 命令行参考。另请参阅dotnet 命令参考。
您可以使用以下命令运行测试项目的 Foo 目标:
dotnet msbuild -target:Foo ./test/Test.csproj
您可以在包含解决方案文件的文件夹中使用以下命令运行所有测试项目:
dotnet test