我正在使用MS-Test进行单元测试编写。 我的大部分测试持续时间不到0.1秒。 我想以某种方式告诉VS“忽略在我手动运行测试时需要花费很长时间才能运行的测试,并且当你在构建上运行它们时不要忽略它们。
我知道在nunit中有一个“显式”属性,只有在你明确选择他时才会运行测试。我认为这可能有所帮助,但不确定。
请帮助
答案 0 :(得分:2)
以与语言无关,与框架无关的方式思考这个问题会让你所要求的东西有些难题:
测试工具在运行之前不知道任何单元测试的执行时间;因为这不仅取决于测试工具和测试本身,还取决于测试中的应用程序。对此的止损解决方案是做一些事情,比如设置时间限制。如果你这样做,那么这就引出了一个问题,当一个测试超时,是否应该通过,失败,或者可能属于其他(第三)类别? ......难题!
因此,为了避免这种情况,我提出你应该采用一种不同的策略,你作为开发人员决定你希望在不同情况下运行的整套测试的哪些子集。例如:
运行测试时,您可以选择运行哪些测试子集,也可以在某种形式的脚本中进行配置。
我使用这种方法在自动化测试中有很好的效果(集成到持续集成系统中)。我这样做是通过一个脚本,根据输入参数,决定只执行冒烟测试加上最小测试;或者冒烟测试,最小测试和综合测试(即所有测试)。
HTH
答案 1 :(得分:0)
您可以使用Timeout
属性,并以毫秒为单位指定超时。如果超时通过,则测试失败。
答案 2 :(得分:0)
是这样的
<TestMethod(), Timeout(1000)>
Public Sub OutputWebservice_SubmitOutputJob_SubmitEmailJobHF001()
End Sub
答案 3 :(得分:0)
您应该设置测试,以便它们在提交后在您的服务器上运行,然后通知开发人员(可能通过电子邮件?)任何失败。
这样,无论持续时间如何,测试都会运行,但不会浪费程序员时间。