【问题标题】:asp.net Unit Test: Mark test as incompleteasp.net 单元测试:将测试标记为不完整
【发布时间】:2013-02-20 11:47:14
【问题描述】:

我想对一个 asp.net MVC web 应用程序进行单元测试。 我们没有使用 TDD(嗯,还没有)。

在接触一个方法后,我想将相应的单元测试标记为未完成或其他什么,以便其他团队成员知道他们必须完成它。

有没有可能这样做?

我们正在使用 Visual Studio 2010 中内置的单元测试功能。

提前致谢。 迈克尔

【问题讨论】:

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


    【解决方案1】:

    您是否希望在进一步处理测试之前不实际运行测试?如果是这样,您可以将 [Ignore] 属性添加到每个测试中,如(对于 MSTest):

    [TestMethod, Ignore]
    public void TestThatNeedsToBeCompleted()
    {
    }
    

    如果您使用的是 NUnit,您可以在 Ignore 属性中添加一个原因参数来解释为什么忽略测试。我认为这在 MSTest 中不可用,但请不要引用我的话 :)

    【讨论】:

    • 谢谢。我们没有使用 NUnit。好吧,我只想要测试,以便其他人知道他们必须实施它。有没有机会这样做?
    • 您可以创建测试方法并设置 Ignore 属性 - 它应该在测试运行程序中被拾取
    【解决方案2】:

    您可以简单地使用断言使测试失败或抛出NotImplementedException。而且你会发现这些测试都不行。

    或者最终在需要时使用IgnoreAttributeenable/disable 进行测试。

    [Ignore]
    [TestMethod]
    public void TestMethod { }
    

    【讨论】:

    • 我认为在单元测试中手动抛出异常的工作量太大。真的没有将测试标记为未完成的属性吗?我想到了忽略,基本上在把它放在我的测试方法之上之后,这个方法的测试没有运行。但没有在某处显示此测试未运行。
    • 如何定义未完成?未设置为 Ignored 的测试如果通过则变为绿色,否则变为红色。如果您想向您的开发人员强调他们需要在测试上做一些工作并且您不关心失败的测试,请编写一些会自动导致测试失败的代码。最简单的方法是通过NotImplementedException 属性。将throw new NotImplementedException(); 添加到单元测试的正文中真的太多工作了吗?
    猜你喜欢
    • 2019-03-06
    • 2023-03-17
    • 2010-10-10
    • 2016-08-18
    • 2021-01-03
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2013-03-14
    相关资源
    最近更新 更多