【问题标题】:What are skipped tests in visual studio?什么是 Visual Studio 中的跳过测试?
【发布时间】:2012-10-11 12:54:00
【问题描述】:

我尝试通过按“全部运行”在 ASP.NET MVC 中运行 Visual Studio 测试,但所有测试都被跳过。为什么会发生这种情况,我该如何运行所有测试?截图如下:

【问题讨论】:

  • 你有测试设置文件吗?
  • 是的,我有 TestSettings.testsettings 文件。
  • 测试设置文件是否指定了要运行的测试?主要是在Folders下,是否包含你的测试所在的文件夹?
  • 在哪里可以找到,可以截图吗?
  • 我知道这已经有一段时间了,但是您设法解决了这个问题吗?我遇到了同样的问题,我在任何地方都找不到解决方案。

标签: c# asp.net-mvc unit-testing visual-studio-2012


【解决方案1】:

检查测试是否有Ignore 属性。

【讨论】:

  • 使用 Ignore 属性运行 SpecFlow 测试将使测试资源管理器跳过测试
  • 我只是想补充一点,注意 Ignore 属性可以应用在方法和类中。
【解决方案2】:

使用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.")

在测试窗口中将读取为跳过

【讨论】:

    【解决方案3】:

    我在 VS 2015 中得到了这个,以及 QTAgent32 停止工作等。结果与测试设置无关,实际上是课堂上的堆栈溢出(我不骗你)我在测试。

    我有几个测试失败了,当代理宕机时,还有一大堆其他人跳过了。我注释掉了受影响区域中的所有测试,直到运行全部正常,然后将它们拉回直到失败,然后为了查看实际的 SO 异常,我必须调试测试。

    然后我用手掌拍了几下并修复了它。 不太可能的情况,但你永远不知道。

    【讨论】:

    • 当从 ClassInitialize、类构造函数甚至默认初始化属性抛出异常时,我也遇到过类似的问题......这次不是这种情况,因为我用一个空类来解决这个问题.
    • 也许它跳过了它,因为它是空的。发生这种情况似乎有很多原因,我个人认为 Test32 需要升级。我有一个无法调试测试的项目。一切似乎都有点不稳定。
    【解决方案4】:

    您指向的测试设置文件可能无效。确保设置文件具有正确的参数(远程或本地等),然后转到工具栏中的Tests>Test Settings>Select Test Settings File 选择有效文件。

    【讨论】:

      【解决方案5】:

      也是由测试 64 位项目但 test->Test Settings->Default Processor Architecture=x86 引起的

      【讨论】:

        【解决方案6】:

        假设您之前的一项测试没有失败,您的测试可能由于权限不足而被跳过。

        您可以在测试中使用“TestCategories”注释。标记它们:

        [TestCategory("Admin") TestMethod()]
        public Void Test1()
        {
           ...
        }
        

        然后排除类别:

        mstest /testcontainer:MyTestprojectName.dll /category:"!Admin"

        您可以在每个测试中使用多个类别。 如需深入了解: http://msdn.microsoft.com/en-us/library/dd286683.aspx

        【讨论】:

          【解决方案7】:

          除了这里提到的之外,检查TestClass是否也没有Ignore属性(不仅仅是测试方法。)这让我有一次...

          【讨论】:

            【解决方案8】:

            我知道这是一个老问题,没有公认的答案,但也许这会对某人有所帮助。

            在测试资源管理器(测试 -> Windows -> 测试资源管理器)中,您可以看到所有被跳过的测试。如果您双击测试名称,它将打开实际的测试代码。检查测试是否具有 [Ignore] 属性,如果要运行测试,请将其删除。 (正如@Sridarshan 建议的那样)

            附:我有 NUnit 测试。

            【讨论】:

              【解决方案9】:

              在 xUnit 中,标记为 FactAttributeSkip 属性设置为某项的测试将被跳过。

              【讨论】:

                【解决方案10】:

                我的 TestSettings.testsettings 文件中定义了一个安装脚本,但我的开发机器上不存在该脚本。

                <Scripts setupScript="C:\Deployment\UnitTestSetup.cmd" />
                

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2014-03-01
                  • 1970-01-01
                  • 2016-02-06
                  • 2010-10-13
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多