如何使用MSTest在C#中强制测试失败

tom*_*tom 2 c# mstest webdriver

我试图将我的某些WebDriver测试从JAVA移植到C#。我坚持的是驱动程序无法在页面上找到某些元素的情况,在JAVA中,我这样做:

if (second >= 10) fail("timeout - " + list);
Run Code Online (Sandbox Code Playgroud)

因此,如果某件事花费了10秒钟以上,则测试将失败并显示超时消息。我在C#中尝试了类似的方法

if (sec >= 10) Debug.Fail("timeout : " + vList);
Run Code Online (Sandbox Code Playgroud)

但这实际上并没有使测试失败,但是给了我一个选择,它带有异常消息框。那不是不,我需要我的自动测试完全失败。然后我尝试

if (sec >= 10) Assert.Fail("timeout : " + vList);
Run Code Online (Sandbox Code Playgroud)

但这会引发未处理的异常错误。我应该在try / catch块中包含Assert.Fail吗?还是应该使用完全不同的方法使测试失败?

如主题中所述,我正在使用MSTest。

编辑:确切的消息是:

用户代码未处理AssertFailedException。断言失败。超时:someField。

Assert.Fail(“ timeout:” + vList);

tom*_*ing 5

我认为您正在看到这种行为,因为您已将调试器附加到正在运行的测试中Assert.Fail-throws AssertFailedException,调试器看到异常并中断-而您没有得到测试结果。

在“调试”菜单上,进入“异常”,查找AssertFailedException(如果没有,请为其创建一个条目),并确保针对该异常类型关闭了“抛出异常”的功能。

或者,在不连接调试器的情况下运行测试。