c# - xUnit:在失败的情况下如何运行附加代码
问题描述
我正在使用 xUnit 进行带有 Selenium 的 UI 测试。我喜欢截屏以防失败。是否可以在终止前做这样的最后工作?
解决方案
不知道官方的方法。但我的想法是将你的断言包装到一些你可以处理失败的方法中
[Fact]
public void Test1()
{
int expected = 1;
int result = 1 + 1;
HandleAssert(() => Assert.Equal(expected, result));
}
[Fact]
public void Test2()
{
int expected = 2;
int result = 1 + 1;
HandleAssert(() => Assert.Equal(expected, result));
}
private void HandleAssert(Action assert)
{
try
{
assert.Invoke();
}
catch(Exception e)
{
//make screenshot
//just throw for preserve stacktrace
throw;
}
}
推荐阅读
- magento - Magento 2.3.5 违反以下内容安全政策
- docker - Windows Server 2019 上的 Docker 错误 4294967295
- ruby-on-rails - 集合为 RadioButtons onclick
- vue.js - 已经使用 Vue.js 登录后的路由器保护登录页面
- python - 神经网络 - Keras - keyError:'acc'
- javascript - PayPal Orders API Express Checkout - CaptureOrder ID 问题
- c# - 碰撞时如何使两个立方体停止?
- linux - 如何从 FTP 服务器上的文件中解析行而不下载它
- python - 尝试重新采样间隔不均匀的时间序列时出现错误
- c# - C# - 无法从创建的域中获取程序集