除非明确触发,否则XUnit会忽略测试

时间:2019-05-22 03:18:08

标签: c# xunit ignore skip fact

我有2个xunit测试,当我从VS触发Run All Tests时,我希望忽略它们,并且仅在用户专门运行它时才运行。

我尝试使用[Fact(Skip = "Long test, only run if needed, and run independently")](或任何消息),但是随后显示警告,并且整个运行的结果都是黄色,即使其余部分都通过了:

enter image description here

我在这里找到了可能允许通过Resharper完成此操作的解决方案,但是我们没有可用的Resharper(我知道...很糟糕)。我也研究了SkippableFact,但我相信这些将使我得到与上图相同的结果。更不用说当您尝试单独运行它时,它总是也会跳过,并且您需要将其更改为常规的[Fact]

是否有人知道有任何可能的方法可以忽略测试,除非是有意,专门和单独触发的?我很困惑,尝试其他任何途径都将非常有帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

在 XUnit 库中,您可以使用具有跳过属性的事实或理论(视情况而定)。

[Fact(Skip = "Reason")] or
[Theory(Skip ="Reason")]

这将跳过测试,整体结果应为绿色。它在我的 Asp.Net Core 应用程序中对我有用。

答案 1 :(得分:-1)

自动测试的手动干预被描述为“行为异味”( XUnit测试模式,Meszaros,2007年,第250页),并且不鼓励使用。

一个可能的解决方案是创建一个测试存根,如果包含该存根,则允许您希望手动控制的测试通过。排除存根将使测试正常运行。这可能需要进行一些脚本修改,才能在每次运行之前手动包括(或排除)存根。