Mat*_*ler 5 c# visual-studio visual-studio-2017
我正在尝试为私人项目设置一些单元测试.由于我不介意确切的跑步者,我尝试了NUnit,XUnit和MStest,但到目前为止都没有.
经过一些研究,我在这里克隆了官方的Microsoft存储库:https://github.com/dotnet/docs/blob/master/samples/core/getting-started/unit-testing-using-nunit/PrimeService.Tests/PrimeService_IsPrimeShould. cs 但是这些测试也不能执行.这样做时,我在输出中收到以下错误:
System.ArgumentException:路径中的非法字符.在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) )在Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Helpers.DotnetHostHelper.GetDotnetPath()在Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Hosting.DotnetTestHostManager.GetTestHostProcessStartInfo(IEnumerable的
1 sources, IDictionary
2个environmentVariables,TestRunnerConnectionInfo connectionInfo)在Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client. Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyDiscoveryManager.DiscoverTests(DiscoveryCriteria discoveryCriteria,ITestDiscoveryEventsHandler2 eventHandler)中的ProxyOperationManager.SetupChannel(IEnumerable`1 sources,CancellationToken cancellationToken)
我还检查了几个SO答案,例如在Visual Studio 2017中未发现的单元测试或如何在Visual Studio 2017 中运行NUnit测试?,但没有一个解决了这个问题.
我的Visual Studio 2017版本目前是15.6.0,我也在使用ReSharper.这似乎是一个当地的环境问题,遗憾的是,我没有找到任何有关该问题的提示.有谁有想法,这个问题怎么解决?
在大型解决方案上从NUnit转移到XUnit后,我遇到了完全相同的问题.
我尝试创建一个只包含一个虚拟测试的新项目.这也表明了问题,这意味着它是环境问题.
我最终发现Git在PATH环境变量的条目周围放置了双引号,如下所示:
...;"C:\ Program Files(x86)\ Git\bin"; ...
不幸的是,我的路径很长(3600个字符),所以Windows GUI不会让我改变它,因为它超过2047个字符.
我能够通过更改Windows注册表中存储在计算机\ HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment中的路径来更正它
我可以通过将引号重新添加到Path环境变量来随意重现行为.
我认为我安装的旧版Git(很久以前)存在一个错误,它将引用的定位添加到路径环境变量中,而更新的更新从未改变过它.我怀疑NUnit测试运行器是否容忍引号,而XUnit测试运行器不是.
我希望我的经验有助于解决您的问题.
归档时间: |
|
查看次数: |
759 次 |
最近记录: |