如果一个测试没有失败,则运行所有测试

Run all tests if one test not fails

我知道所有的测试都应该是独立的并且以随机顺序运行。

但这是我的情况:

我需要测试我的图书馆,它正在使用外部网络资源。我有一项检查网络资源是否可用的测试,还有许多检查我从该资源获得的数据的测试。

如果网络资源不可用,我的所有测试都失败了,我认为很难解释这个结果。当且仅当第一个测试(检查资源可用性)没有失败时,有什么方法可以运行所有检查我从资源中获取的数据的测试吗?

我认为网络资源的可用性应该是测试您的图书馆的先决条件。它本身不应该是一个单独的测试。

因此,您需要检查 TestFixtureSetup 中的连接。如果连接失败,所有来自 fixture 的测试将不会 运行。此测试夹具中的所有测试都将标记为失败(如果没有连接则为真)并且您将收到消息

TestFixtureSetUp failed in YourLibtraryTests

不幸的是,如果您测试失败并显示一些消息,NUnit 将不会显示其他信息

Assert.NotNull(connection, "Cannot establish connection to remote service");

但是如果知道是TestFixtureSetUp失败了就很容易找到原因了