Skip to main content
 首页 » 编程设计

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

2024年11月01日19over140

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

if (second >= 10) fail("timeout - " + list); 

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

if (sec >= 10) Debug.Fail("timeout : " + vList); 

但这实际上并没有使测试失败,而是让我可以选择使用异常消息框来进行测试。那是一个不,不,我需要我的自动测试自己完全失败。然后我试了一下

if (sec >= 10) Assert.Fail("timeout : " + vList); 

但这会抛出一个未处理的异常错误。我应该将 Assert.Fail 包含在 try/catch block 中吗?还是我应该使用完全不同的东西来使测试失败?

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

编辑:确切的信息是:

AssertFailedException was unhandled by user code. Assert.Fail failed. timeout : someField.

Assert.Fail("timeout : " + vList);

请您参考如下方法:

我认为您会看到这种行为,因为您已将调试器附加到正在运行的测试 - Assert.Fail 抛出 AssertFailedException,您的调试器会看到异常并且休息 - 你得不到测试结果。

在“调试”菜单上,进入“异常”,找到 AssertFailedException(如果不存在则为其创建一个条目)并确保针对该异常类型关闭抛出中断。

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