是否有可能使用Nunit定义一个方法,该方法将在程序集中的每个测试之前执行?
要非常清楚:我不希望在所有测试之前执行一次代码,但我需要在每次测试之前进行一些常规设置.所以,如果我有10个测试,我希望我的方法执行10次.
遗憾的是遗传不是我的选择(我已经将它用于不同的目的,不能混用)
Cha*_*lie 10
您可以在其Before方法中定义包含所需代码的Action Attribute.将它应用于程序集,并带有一个参数,指示它应该用于每个测试.
请注意,操作属性在NUnit 2和3之间的工作方式略有不同,因此请务必检查文档的相应级别.
您可以设置一个方法SetupAttribute,该方法将在TextFixture类中的每个测试之前执行,但仅在那里执行.
像这样的东西:
[TestFixture]
class SomeTests
{
[SetUp]
public void SetupBeforeEachTest()
{
//Some code
}
}
Run Code Online (Sandbox Code Playgroud)
我知道你说你不能使用继承,但如果你想在程序集中的每个测试之前执行一个方法,我认为这是最好的方法,因为该SetUp属性是从任何基类继承的.因此,如果基类定义了一个SetUp方法,那么将在派生类中的每个测试方法之前调用该方法:
abstract class BaseTestFixture
{
[SetUp]
public void SetupBeforeEachTest()
{
//Some code
}
}
[TestFixture]
class SomeTests : BaseTestFixure
{
//Tests
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5566 次 |
| 最近记录: |