Xunit 跳过测试

Xunit Skip Tests

提问人:user384884 提问时间:11/8/2023 更新时间:11/9/2023 访问量:69

问:

你能告诉我是否可以根据 json 文件中布尔变量的值以某种方式跳过测试执行,skip 属性不与条件绑定,并且反射看不到这个属性,只是 if-return 不合适。

我甚至不需要测试运行,所以如果它只是返回成功执行(不执行正文),它不适合我

Skip 属性, 测试主体中的 If-Return 反射

根据布尔变量的值跳过测试,但它不起作用

C# 单元测试 xunit 跳过

评论


答:

0赞 Peter Csala 11/8/2023 #1

据我所知,xUnit 目前没有为此提供内置解决方案。但是有第三方库,如 Xunit.SkippableFact,如果满足某些条件,它允许您在运行时跳过某些测试。

[SkippableFact]
public void Given_When_Then()
{
    Skip.If(EvaluateYourDynamicCondition(), "It is skipped based xyz.json");

    // Arrange
    // ...

}

SkippableTheory如果使用参数化单元测试 (PUT),则也受支持。


更新 #1

在撰写本文时尚未发布的 xUnit V3 中,将支持动态可跳过性。

[Fact]
public void Given_When_Then()
{
    Assert.SkipWhen(EvaluateYourDynamicCondition(), "It is skipped based xyz.json");

    // Arrange
    // ...

}

更新 #2

这个库不能按我的需要工作,测试仍在执行,它们只是抛出异常

它确实对我有用。

skippeableFact

评论

0赞 user384884 11/8/2023
也许有一种方法可以在没有第三方库的情况下自己做类似的事情,也许使用 trait,或者我不知道,使用你自己的属性,等等??
0赞 Peter Csala 11/8/2023
@user384884,如果通过继承和/或属性很容易解决这个问题,那么 xunit v3 和第三方库将通过这种方式公开此功能。
0赞 user384884 11/9/2023
这个库不能按我的需要工作,测试仍在执行,它们只是抛出异常
0赞 Peter Csala 11/9/2023
@user384884 它应该在没有任何额外设置的情况下工作。我已经更新了帖子,向您展示它就像一个魅力。