I'm trying to set up some unit tests for a private project. Since I don't mind the exact runner, I tried NUnit, XUnit and MStest, but none worked so far.
After some research, I cloned the official Microsoft repository here :https://github.com/dotnet/docs/blob/master/samples/core/getting-started/unit-testing-using-nunit/PrimeService.Tests/PrimeService_IsPrimeShould.cs But these tests can't be executed as well. When doing so, I get the following error in the output:
System.ArgumentException: Illegal characters in path. at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) at System.IO.Path.Combine(String path1, String path2) at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Helpers.DotnetHostHelper.TryGetExecutablePath(String executableBaseName, String& executablePath) at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Helpers.DotnetHostHelper.GetDotnetPath() at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Hosting.DotnetTestHostManager.GetTestHostProcessStartInfo(IEnumerable
1 sources, IDictionary
2 environmentVariables, TestRunnerConnectionInfo connectionInfo) at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyOperationManager.SetupChannel(IEnumerable`1 sources, CancellationToken cancellationToken) at Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyDiscoveryManager.DiscoverTests(DiscoveryCriteria discoveryCriteria, ITestDiscoveryEventsHandler2 eventHandler)
I also checked out several SO answers like Unit Tests not discovered in Visual Studio 2017 or How to run NUnit tests in Visual Studio 2017?, but none of them fixed the problem.
My Visual Studio 2017 Version is currently 15.6.0 and I'm also using ReSharper. It seems like this is a local environmental problem, unfortunately, I didn't find any hints regarding that problem. Has anyone a idea, how that problem could be solved?
I had exactly the same problem after moving from NUnit to XUnit on a large solution.
I tried creating a new project that contained just a single dummy test. This also exhibited the problem, meaning it was environmental.
I eventually discovered Git had placed double quotes around its entry in the PATH environment variable, like this:
...;"C:\Program Files (x86)\Git\bin";...
Unfortunately, my path was very long (3600 chars), so the Windows GUI would not let me change it as it was more then 2047 chars.
I was able to correct it by changing the Path stored in the Windows Registry at Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment
I was able to reproduce the behaviour at will by re-adding the quotes to the Path environment variable.
I think there was a bug with an older version of Git I had installed (long ago) which added the quoted locate to the path environment variable, and newer updates never changed it. I suspect the NUnit test runner was tolerant of the quotes, while the XUnit test runner is not.
I hope my experience helps with your issue.
Just in case someone still has the same issue of "0 Tests Found -- Invalid Character in path". I was experiencing it but I was able to solve it, however, it took me two days to find the solution. The solution is very simple but at the time it was not clear to the surface. Solution: (Windows - PCs)
After these steps, the tests should be found this time.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With