Visual Studio 2017 + .Net Core 2测试不可执行

问题描述 投票:5回答:3

我正在尝试为私人项目设置一些单元测试。由于我不介意确切的跑步者,我尝试了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(IEnumerable1 sources, IDictionary2 environmentVariables,TestRunnerConnectionInfo connectionInfo)在Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyOperationManager Microsoft.VisualStudio.TestPlatform.CrossPlatEngine.Client.ProxyDiscoveryManager.DiscoverTests(DiscoveryCriteria discoveryCriteria,ITestDiscoveryEventsHandler2 eventHandler)中的.SetupChannel(IEnumerable`1 sources,CancellationToken cancellationToken)

我还检查了几个SO答案,如Unit Tests not discovered in Visual Studio 2017How to run NUnit tests in Visual Studio 2017?,但没有一个解决了问题。

我的Visual Studio 2017版本目前是15.6.0,我也在使用ReSharper。这似乎是一个当地的环境问题,遗憾的是,我没有找到任何有关该问题的提示。有谁有想法,这个问题怎么解决?

c# visual-studio visual-studio-2017
3个回答
1
投票

在我的情况下,当我将VS2017更新到15.6.4版时,问题就消失了。


7
投票

在大型解决方案上从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测试运行器不是。

我希望我的经验有助于解决您的问题。


0
投票

以防有人仍然遇到“0测试发现 - 路径中的无效字符”的相同问题。我正在经历它,但我能够解决它,但是,我花了两天时间才找到解决方案。解决方案非常简单,但当时表面尚不清楚。解决方案:( Windows - PC)

  • 打开此PC - >属性 - >高级系统设置 - >环境变量 - >用户变量
  • 滚动到“路径”并单击“编辑”,然后单击“编辑文本...”
  • 检查整个文本并删除任何双引号,<>如果可用,然后单击“确定”。
  • 对系统变量路径执行相同操作。
  • 返回Visual Studio,构建解决方案并运行所有测试。

完成这些步骤后,这次应该进行测试。

© www.soinside.com 2019 - 2024. All rights reserved.