更新:添加2017年; VS2017使用与2015年相同的测试发现/运行器集成机制,因此可能出错的关键事项是相同的.
我已经阅读了为什么xUnit运行器没有找到我的测试,这涵盖了xUnit 永远无法找到你的测试但我的问题不同的原因 - 我相信我的测试没有任何微妙的变化; (他们在其他环境中工作过,这似乎只是我的机器) - Visual Studio 2015中的Visual Studio Test Runner [社区版]根本没有显示我的任何测试.我没有做任何令人兴奋的事情; 测试针对桌面上的xUnit.net v2.
我查看了"输出"窗口,在" 显示"选项卡的"输出"中的" 测试"下看不到任何内容.
编辑2016-10-19:
最初的问题是关于VS2015 CTP6与XUnit测试运行器特有的问题.从答案中可以清楚地看出,Visual Studio中的单元测试发现存在更广泛的问题,这可能在许多不同的情况下发生.我已经清理了我的问题以反映这一点.
我还在我自己的答案中加入了一个脚本,我今天仍然使用它来解决类似的问题.
许多其他答案也证明有助于更好地理解VS测试运行器的复杂性.我感谢人们仍在分享他们的解决方案!
原始问题2015-04-10:
从昨天开始,我的Visual Studio Test Explorer将不会发现任何项目的测试.建筑后也没有显示绿色装载栏.
当我转到Visual Studio Test Explorer并单击"全部运行",或者当我右键单击任何测试方法并选择"运行测试"时,我在输出窗口中得到以下内容:
Could not load file or assembly 'Microsoft.VisualStudio.Web.ProjectSystem, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
我在Windows 10 Pro Technical Preview上运行Visual Studio 2015 CTP 6,构建10041. .NET Framework版本似乎并不重要 - 它发生在4.0,4.5.2和4.6.
我尝试使用以下测试框架,所有这些都给出了相同的行为:
Microsoft.VisualStudio.QualityTools.UnitTestFramework v14.0.22609.0xunit v2.1.0-beta1-build2945 同 xunit.runner.visualstudio v2.1.0-beta1-build1051NUnit v2.6.4 同 NUnitTestAdapter v2.0.0我在GitHub(xunit)上发现了一个类似的问题:无法通过xunit团队的评论发现测试#295:
请注意,据报道,Visual Studio 2015 CTP 5被一般的单元测试(不仅仅是xUnit.net)打破了,所以不要指望它可以工作.
此外,请确保您已清理Visual …
unit-testing xunit test-runner visual-studio-2015 visual-studio-2017
谁能帮助我让VS2017与.NET Core测试项目一起工作?
我尝试从VS 2017模板为.NET Core创建MSTest和xUnit单元测试项目.它们都不适用于测试资源管理器(未发现),但从dotnet test项目文件夹运行可以正常工作.
重现步骤:
Unit Test Project (.NET Core)或xUnit Test Project (.NET Core)模板Run All 此时,"输出"窗口应该告诉您已发现0测试
.csproj 文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
如果我尝试从面向.NET Framework的模板(完整版,而不是.NET Core)创建MSTest单元测试项目,那么它可以工作.
有任何想法吗?
我做了这样的nuget安装:
Install-Package xunit.runner.visualstudio -Version 2.2.0
Run Code Online (Sandbox Code Playgroud)
在我的测试项目上.
我有一个类似的测试:
public class When_Doing_Stuff_I_Want_To_Test
{
[Fact]
public void Can_Do_Stuff()
{
var result = DoStuff();
result.ShouldNotBeNull();
result.Success.ShouldBeTrue();
}
}
Run Code Online (Sandbox Code Playgroud)
虽然我已经做了很多VS重启,笔记本电脑重新启动,中间休息一天,VS 2017仍然无法发现我的测试:
我该怎么做才能解决这个问题并看看我的测试?
附录
我在4.6.1下工作,所以还没有Core.
关于相同主题的问题没有帮助:
所以有很多回合,没有一个帮助......
更新
我也无法使NUnit工作,也不会出现在测试资源管理器中.
更新2
我擦了我的项目并重新创建了这样的项目:
然后我复制了我的原始代码并添加了所有必要的参考,没有区别.
错误:没有运行测试 - 在调试/运行C#单元测试用例时 - Visual Studio 2017 15.5.1没有发现测试用例.
框架Microsoft.NET框架4.6.1
添加了测试适配器,如下所示:MSTest.TestAdapter.1.2.0 MSTest.TestFramework.1.2.0
测试资源管理器没有显示测试用例.
这在视觉工作室升级后开始发生.某些单元测试项目测试用例在测试资源管理器中未被发现.当尝试调试或运行它时说"没有发现测试运行".
我尝试删除项目并重新创建它..但没有奏效.
输出[4/3/2018 2:59:25 PM信息]未发现任何测试运行.
更新
我已将VS更新到15.6.4删除VS测试缓存文件DEL%TEMP%\ VisualStudioTestExplorerExtensions重新启动Visual Studio
测试用例被发现但没有调试
我正在尝试为私人项目设置一些单元测试.由于我不介意确切的跑步者,我尝试了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, IDictionary2个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.这似乎是一个当地的环境问题,遗憾的是,我没有找到任何有关该问题的提示.有谁有想法,这个问题怎么解决?
unit-testing ×5
c# ×2
xunit ×2
.net ×1
.net-core ×1
mstest ×1
test-runner ×1
testing ×1
xunit2 ×1