【发布时间】:2014-04-29 14:04:57
【问题描述】:
我想使用 NUnit 来运行 GUI / 集成测试。 我想做的是在所有测试之前初始化一些自定义报告(来自我们使用的 GUI 测试框架),并在整个套件运行后运行报告的导出。
有没有一些“超级”的设置方法或实践来解决这个问题?
我曾想过在所有其他测试之前和之后运行一个特殊的“TestFixture”,但这是个很糟糕的主意。 另一种方法是在之后运行一些脚本,但这并不能解决日志记录的预运行初始化问题。
【问题讨论】:
我想使用 NUnit 来运行 GUI / 集成测试。 我想做的是在所有测试之前初始化一些自定义报告(来自我们使用的 GUI 测试框架),并在整个套件运行后运行报告的导出。
有没有一些“超级”的设置方法或实践来解决这个问题?
我曾想过在所有其他测试之前和之后运行一个特殊的“TestFixture”,但这是个很糟糕的主意。 另一种方法是在之后运行一些脚本,但这并不能解决日志记录的预运行初始化问题。
【问题讨论】:
您可以使用[SetUpFixture] 属性在所有测试运行之前实例化一个类。这个类的构造函数将首先被调用。如果这个类实现了IDisposable,那么Dispose方法会在所有测试运行后被调用。
这是一个例子:
[SetUpFixture]
public class IntegrationSetUpFixture : IDisposable
{
public IntegrationSetUpFixture()
{
// runs before all tests
}
public void Dispose()
{
// runs after all tests
}
}
【讨论】:
[SetUp] 属性标记该 [SetUpFixture] 类中的任意公共方法;同样,任何公共方法都可以使用[TearDown] 属性进行标记,而不需要实现IDisposable。