2015-09-28 46 views
3

我想知道在運行任何加載測試之前是否有可能啓動腳本?例如,也許要在測試執行之前將種子數據或清除任何數據。加載測試Visual Studio,啓動腳本/設置

在我的例子中,我有一個設計師和編碼測試的混合包。簡單地說,我有:

  • 兩個coded測試
  • 一個designer創建Web測試指向這些編碼的測試
  • 運行於設計師load test

我曾嘗試加入類和裝飾的屬性[TestInitialize()],[ClassInitialize()]但這個代碼似乎並沒有得到運行。

一些基本的代碼在實踐中顯示(見下文)。有沒有辦法做到這一點,我可以有東西運行只有一次運行前測試

[TestClass] 
public class Setup : WebTest 
{ 
    [TestInitialize()] 
    public static void Hello() 
    { 
     // Run some code 
    } 

    public override IEnumerator<WebTestRequest> GetRequestEnumerator() 
    { 
     return null; 
    } 
} 

也許還應該提一下,在我的編碼測試中,我已經添加了這些屬性,並且它們被忽略。我遇到了一個解決方法,即創建一個Plugin

編輯

做完多一點的瀏覽圍繞我發現SO this文章展示瞭如何實現LoadTestPlugin

回答

2

Visual Studio提供了之前和之後還運行腳本的方式測試運行。它們旨在用於爲測試部署數據並在測試後進行清理。腳本在「.testsettings」文件中的"Setup and cleanup"頁面上指定。

負載測試插件可以包含任何測試用例執行之前和之後運行的代碼,也可以包含測試執行期間的各個階段。接口是在執行負載測試期間在各個點引發事件。用戶代碼可以在這些事件發生時被調用。在任何測試用例運行之前引發LoadTestStarting事件。有關更多信息,請參閱here

+0

更喜歡插件的方法,因爲它給了我更多的控制權,我認爲它非常簡單清潔:) –

0

如果你願意使用NUnit已經設置/ TearDown中的每個測試的範圍和TestFixtureSetUp/TestFixtureTearDown做類似的事情一類(的TestFixture)

0

也許一個黑客位的,但你可以把你的代碼測試類的靜態構造函數中,因爲它會自動運行恰好一次之前創建的第一個實例或任何靜態成員被引用:

[TestClass] 
public class Setup : WebTest 
{ 
    static Setup() 
    { 
     // prepare data for test 
    } 

    public override IEnumerator<WebTestRequest> GetRequestEnumerator() 
    { 
     return null; 
    } 
}