如何使用[TearDown]
在[Test]
中确定实际的NUnit
是否成功?
如果特定[TearDown]
未成功,我想在[Test]
中打开(Selenium drived)Chrome浏览器窗口。如果成功,窗口可以关闭。
答案 0 :(得分:0)
这不是一种特别优雅的方法,但是通过使用method of attribute counting described here并在每次测试通过时递增计数器,您可以比较拆解时的结果。
免责声明:请注意,这仅适用于灯具中的所有测试都已运行(因为所有Test
都已计算在内 - 例如,在个别Test
案例中使用R#测试运行器将失败惨败。如果您在灯具中进行Ignore
个一个或多个测试,它也会失败,因为计数将会消失。
[TestFixture]
public class UnitTest1
{
private static int testsPassed = 0;
[TearDown]
public void TearDown()
{
// use reflection to find all tests in this fixture
var totalTests = GetType()
.GetMethods()
.Count(method => method.GetCustomAttributes(
typeof (TestAttribute), false).Count() > 0);
if (testsPassed == totalTests)
{
// All good - can close the driver
// seleniumDriver.Quit()
}
}
[Test]
public void FailedMethod()
{
Assert.AreEqual(1,2);
Interlocked.Increment(ref testsPassed);
}
[Test]
public void PassMethod()
{
Assert.AreEqual(1, 1);
Interlocked.Increment(ref testsPassed);
}
}
答案 1 :(得分:0)
一种选择是撰写custom NUnit EventListener
addin。通过这种方式,您可以获得有关测试失败或成功的通知,并增加一些计数器。