是否有可能定義與NUnit的一種方法,這將在裝配前執行每個測試之前執行?NUnit的 - 全球方法每個測試
要非常清楚:我不想以前所有測試執行一次一些代碼,但我需要在每次測試之前做一些常規設置。所以如果我有10個測試,我想讓我的方法執行10次。
繼承是可悲的是不是一種選擇,我(我已經將它用於不同的目的,不能混用)
是否有可能定義與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
}
是的,我將這種方法用於不同的目的。我在其他程序集中定義了3種不同的通用'TestClass'(0-2類型參數)變體,我希望我的項目可以使用這些TestClass,並以類似的方式添加其他類。 – synek317
真棒!謝謝!!! – synek317