我有2个xunit测试,当我从VS触发Run All Tests
时,我希望忽略它们,并且仅在用户专门运行它时才运行。
我尝试使用[Fact(Skip = "Long test, only run if needed, and run independently")]
(或任何消息),但是随后显示警告,并且整个运行的结果都是黄色,即使其余部分都通过了:
我在这里找到了可能允许通过Resharper完成此操作的解决方案,但是我们没有可用的Resharper(我知道...很糟糕)。我也研究了SkippableFact
,但我相信这些将使我得到与上图相同的结果。更不用说当您尝试单独运行它时,它总是也会跳过,并且您需要将其更改为常规的[Fact]
是否有人知道有任何可能的方法可以忽略测试,除非是有意,专门和单独触发的?我很困惑,尝试其他任何途径都将非常有帮助。谢谢!
答案 0 :(得分:1)
在 XUnit 库中,您可以使用具有跳过属性的事实或理论(视情况而定)。
[Fact(Skip = "Reason")] or
[Theory(Skip ="Reason")]
这将跳过测试,整体结果应为绿色。它在我的 Asp.Net Core 应用程序中对我有用。
答案 1 :(得分:-1)
自动测试的手动干预被描述为“行为异味”( XUnit测试模式,Meszaros,2007年,第250页),并且不鼓励使用。
一个可能的解决方案是创建一个测试存根,如果包含该存根,则允许您希望手动控制的测试通过。排除存根将使测试正常运行。这可能需要进行一些脚本修改,才能在每次运行之前手动包括(或排除)存根。