The Getting started with xUnit.net (.NET Core / ASP.NET Core) page describes how to run tests with dotnet test
command line.
It states that it requires a specific project.json, where we add xunit dependencies and test runner:
"testRunner": "xunit",
"dependencies": {
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-build10015"
}
If I try calling it from the parent directory:
C:\git\Project\test [master ≡]> dotnet test
dotnet-test Error: 0 : System.InvalidOperationException: C:\git\Project\test\project.json does not exist.
at Microsoft.DotNet.Tools.Test.TestCommand.GetProjectPath(String projectPath)
at Microsoft.DotNet.Tools.Test.TestCommand.DoRun(String[] args)
C:\git\Project\test [master ≡]>
Question: Is there a way to run all tests (multiple project.json) with a single dotnet test
?
Since it's been almost a month and no answer, I'll at least share what I've been doing. (this won't be relevant once Visual Studio "15" RTM is launched because project.json is dead)
Simply using a for
loop on all project.json:
Locally, from the test directory, I just run:
for /f %a in ('dir /b /s project.json ^| find /v "TestUtilities"') do dotnet test %a
Running it on all project.json except where the path has: TestUtilities
Mind that on TeamCity you need to escape % (and in scripts you need double: %%) so it goes by:
for /f %%%a in ('dir /b /s project.json ^| find /v "TestUtilities"') do dotnet test %%%a
Note the %%%. Since % in TeamCity is used for variables, the third % escapes it.