**\*test*.dll
我想在dotnet cli上使用这个架构,但我无法找到dotnet测试文档。我的项目文件结构就是这样this。
目前测试它查看.sln文件下的所有.dll文件。但我想看看tests.dll文件
dotnet test --no-build "**\*test*.dll" //?? All files in my project
答案 0 :(得分:1)
对于dotnet测试,没有这样的模式可以过滤,我们只能通过 DisplayName 或 FullyQualifiedName 过滤xUnit的测试,请参阅此链接以获取详细信息: https://github.com/Microsoft/vstest-docs/blob/master/docs/filter.md
但它只能过滤测试,它不能排除其他非测试项目.dll。
e.g。
dotnet test --filter "FullyQualifiedName=YourNamespace.TestClass1.Test1"
但是,您可以尝试编写PowerShell脚本来过滤测试项目并在循环中运行命令。参考:Dotnet CLI – running tests from multiple assemblies
e.g。
Get-ChildItem | ? { $_.Name.Contains("Test") } | ForEach-Object { Push-Location; Set-Location $_.Name; dotnet test --no-build; Pop-Location}
此线程也供您参考:https://github.com/Microsoft/vstest/issues/705
另一种解决方法是编写 cmd / bat 脚本以仅运行测试项目:
e.g。
cd C:\TestProjectPath\A.Tests
dotnet test --no-build
cd C:\TestProjectPath\B.Tests
dotnet test --no-build
cd C:\TestProjectPath\C.Tests
dotnet test --no-build
答案 1 :(得分:0)
通过使用带有通配符的正则表达式的dotnet vstest
,无需任何脚本即可达到相同的目的。
例如:
dotnet build --configuration Release
dotnet vstest ./**/*Tests/bin/Release/**/*Tests.dll
第一个命令将使用dll生成Release文件夹。第二个将运行找到与模式匹配的所有测试dll。
这与xUnit框架一起很好地工作。不确定其他框架。
答案 2 :(得分:0)
在项目路径中输入** / * Test.csproj,这样它将仅运行测试Test项目。