Nunit - 每次测试前执行的全局方法
Nunit - global method executed before each test
是否有可能使用 Nunit 定义一个方法,该方法将在程序集中的 each 测试之前执行?
完全清楚:我不想在 all 测试之前执行一些代码 once,但我需要做一些常规的每次测试前设置。所以如果我有 10 个测试,我希望我的方法被执行 10 次。
遗憾的是,继承对我来说不是一个选择(我已经将它用于不同的目的,不能混合使用)
您可以使用 SetupAttribute
设置一个方法,该方法将在 TextFixture
class 中的每个测试之前执行,但仅限于此。
像这样:
[TestFixture]
class SomeTests
{
[SetUp]
public void SetupBeforeEachTest()
{
//Some code
}
}
我知道你说你不能使用继承,但如果你想在程序集中的每个测试之前执行一个方法,我认为这是最好的方法,因为 SetUp
属性是从任何继承的基地 class。因此,如果一个基础 class 定义了一个 SetUp
方法,该方法将在派生的每个测试方法之前被调用 class:
abstract class BaseTestFixture
{
[SetUp]
public void SetupBeforeEachTest()
{
//Some code
}
}
[TestFixture]
class SomeTests : BaseTestFixure
{
//Tests
}
您可以定义一个在其 Before 方法中包含所需代码的操作属性。将它应用于程序集,并带有一个参数,表明它应该用于每个测试。
请注意,Action Attribute 在 NUnit 2 和 3 之间的工作方式略有不同,因此请务必查看文档的相应级别。
是否有可能使用 Nunit 定义一个方法,该方法将在程序集中的 each 测试之前执行?
完全清楚:我不想在 all 测试之前执行一些代码 once,但我需要做一些常规的每次测试前设置。所以如果我有 10 个测试,我希望我的方法被执行 10 次。
遗憾的是,继承对我来说不是一个选择(我已经将它用于不同的目的,不能混合使用)
您可以使用 SetupAttribute
设置一个方法,该方法将在 TextFixture
class 中的每个测试之前执行,但仅限于此。
像这样:
[TestFixture]
class SomeTests
{
[SetUp]
public void SetupBeforeEachTest()
{
//Some code
}
}
我知道你说你不能使用继承,但如果你想在程序集中的每个测试之前执行一个方法,我认为这是最好的方法,因为 SetUp
属性是从任何继承的基地 class。因此,如果一个基础 class 定义了一个 SetUp
方法,该方法将在派生的每个测试方法之前被调用 class:
abstract class BaseTestFixture
{
[SetUp]
public void SetupBeforeEachTest()
{
//Some code
}
}
[TestFixture]
class SomeTests : BaseTestFixure
{
//Tests
}
您可以定义一个在其 Before 方法中包含所需代码的操作属性。将它应用于程序集,并带有一个参数,表明它应该用于每个测试。
请注意,Action Attribute 在 NUnit 2 和 3 之间的工作方式略有不同,因此请务必查看文档的相应级别。