NUnit的 - 全球方法每个测试
问题描述:
是否有可能定义与NUnit的一种方法,这将在装配前执行每个测试之前执行?NUnit的 - 全球方法每个测试
要非常清楚:我不想以前所有测试执行一次一些代码,但我需要在每次测试之前做一些常规设置。所以如果我有10个测试,我想让我的方法执行10次。
继承是可悲的是不是一种选择,我(我已经将它用于不同的目的,不能混用)
答
可以定义包含在其之前的方法所需要的代码的操作属性。用一个参数将其应用到程序集中,指出它应该用于每个测试。
请注意,动作属性在NUnit 2和3之间有点不同,所以一定要检查文档的适当级别。
答
您可以使用SetupAttribute
设置一个方法,该方法将在类别TextFixture
中的每个测试之前执行,但仅限于此。
事情是这样的:
[TestFixture]
class SomeTests
{
[SetUp]
public void SetupBeforeEachTest()
{
//Some code
}
}
我知道你说你不能使用继承,但是如果你想在大会每次测试之前执行的方法,我觉得这是最好的方法,自SetUp
属性从任何基类继承。因此,如果一个基类定义了一个SetUp
方法,该方法将在派生类每个测试方法之前调用:
abstract class BaseTestFixture
{
[SetUp]
public void SetupBeforeEachTest()
{
//Some code
}
}
[TestFixture]
class SomeTests : BaseTestFixure
{
//Tests
}
+0
是的,我将这种方法用于不同的目的。我在其他程序集中定义了3种不同的通用'TestClass'(0-2类型参数)变体,我希望我的项目可以使用这些TestClass,并以类似的方式添加其他类。 – synek317
真棒!谢谢!!! – synek317