2017-05-27 59 views
0

我有我的全局設置如下(C#與NUnit的2.6.4)[設置]運行每個測試用例

public class GlobalSetup 
{ 
    [SetUp] 
    public void setUp() 
    { 
     // Setup code 
    } 
} 

和我的測試情況如下

[TestFixture] 
public class Products : GlobalSetup 
{ 
    [Test, Description("Test description here")] 
    public void GetProductsByProductID() 
    { 

    } 

    [Test] 
    public void GetHeader() 
    { 

    } 

    [Test] 
    public void GetMyProducts() 
    { 

    } 
} 

雖然設置是運行它每個測試用例都運行一次。我希望安裝程序僅對整個測試套件運行一次。你們可以幫我嗎?我可以在整個套件中只運行一次設置。

此外,當我已經使用了GlobalSetUp文件作爲之下,則設置方法對於每個測試用例運行兩次。

注:我使用NUnit的2.6.4

+0

看那[SetupFixture](https://nunit.org/index.php?p=setupFixture&r=2.6.3)文檔。 –

+0

@JeroenHeier但是我在SetupFixture中看到這個例子,它在類級別標記,安裝標記爲方法級別。我可以在方法級別標記[SetupFixture]嗎? –

回答

1

當你說你想一次測試套件運行的全局設置,你的意思是的TestFixture?我會認爲你在我的回答做,但請記住,組件是測試套件,每個命名空間是一個測試套件等

要爲燈具運行一次的全局設置,任何測試運行之前。將GlobalSetUp類中的SetUp屬性更改爲TestFixtureSetUp屬性。 (如果你使用NUnit 3.x中,這將是OneTimeSetUp屬性)

如果你的意思是不是測試夾具其他的東西,我可以編輯這個答案給你。

+0

謝謝查理,那就是我一直在尋找的。 –

1

NUnit的SetUp屬性使方法執行每個測試方法之前。

你需要的是一個TestFixtureSetUp屬性,用於標記的一次性設置方法。

+0

但是我在[SetupFixture](https://nunit.org/index.php?p=setupFixture&r=2.6.3)中看到這個例子,它在課堂級別和[Setup](https://nunit.org/ index.php?p = setup&r = 2.6.3)在方法級別標記。我可以在方法級別標記[SetupFixture]嗎? –

+1

@CodeFuller misspoke。 SetUpFixture是一個夾具,即一個類。它包含NUnit 2.x中的SetUp方法或NUnit 3.x中的OneTimeSetUp方法。 – Charlie

+0

對不起,我將SetUpFixture與TestFixtureSetUp混合在一起。相應地更正了我的答案。 – CodeFuller