我试图通过按“全部运行”在 ASP.NET MVC 中运行 Visual Studio 测试,但所有测试都被跳过了。为什么会发生这种情况,我该如何运行所有测试?这是一个屏幕截图:
10 回答
检查测试是否具有忽略属性。
使用Inconclusive
结果的测试将显示为已跳过。所以VS 2010 inconclusive == VS 2012 skipped
前任:
Assert.Inconclusive("This test didn't exactly fail, but we can't be certain the results are good.")
在测试窗口中将读取为已跳过
您指向的测试设置文件可能无效。确保设置文件具有正确的参数(远程或本地等),然后转到Tests>Test Settings>Select Test Settings File
工具栏中的 选择有效文件。
我在 VS 2015 中得到了这个,以及 QTAgent32 停止工作等。结果与测试设置无关,实际上是我正在测试的课程中的堆栈溢出(我不骗你)。
我有几个测试失败了,当代理失败时,还有一大堆其他人跳过了。我注释掉了受影响区域中的所有测试,直到运行全部正常,然后将它们拉回直到失败,然后为了查看实际的 SO 异常,我必须调试测试。
然后我用手掌拍了几下并固定它。不太可能的情况,但你永远不知道。
假设您之前的一项测试没有失败,您的测试可能由于权限不足而被跳过。
您可以在测试中使用“TestCategories”注释。标记它们:
[TestCategory("Admin") TestMethod()]
public Void Test1()
{
...
}
然后排除类别:
mstest /testcontainer:MyTestprojectName.dll /category:"!Admin"
您可以在每个测试中使用多个类别。有关深入信息:http: //msdn.microsoft.com/en-us/library/dd286683.aspx
也是由测试 64 位项目但 test->Test Settings->Default Processor Architecture=x86 引起的
除了这里提到的之外,检查 TestClass 是否也没有 Ignore 属性(不仅仅是测试方法。)这让我有一次...
我知道这是一个老问题,没有公认的答案,但也许这会对某人有所帮助。
在测试资源管理器(测试 -> Windows -> 测试资源管理器)中,您可以看到所有被跳过的测试。如果您双击测试名称,它将打开实际的测试代码。检查测试是否具有 [Ignore] 属性,如果要运行测试,请将其删除。(正如@Sridarshan 建议的那样)
PS 我有 NUnit 测试。
在 xUnit 中,将跳过标记FactAttribute
为哪个Skip
属性设置为某项的测试。
我在我的 TestSettings.testsettings 文件中定义了一个安装脚本,该脚本在我的开发机器上不存在。
<Scripts setupScript="C:\Deployment\UnitTestSetup.cmd" />