2012-06-04 72 views
2

在我們的Cruise Control構建中,我們爲3個瀏覽器運行一套Selenium測試。爲此,我們通過MSTest運行相同的測試套件,但是我們在每次運行之間更改app.config文件以設置要使用的瀏覽器。在mstest trx輸出文件中注入自定義數據

問題是,在巡航控制的MSTest報告頁面中,我們看到三個測試運行,但我們無法看到每個測試運行使用哪個瀏覽器。

理想情況下,我想做一些事情,比如將瀏覽器的名稱作爲參數傳遞給MSTest,以便將它寫入trx文件,但我沒有看到任何可能性。我唯一想到的是爲trx文件指定一個輸出名稱,然後使用Powershell腳本來更改此文件中的xml。

你有更好的主意嗎?

回答

4

遵循Elena的建議,我查看了MSTest中的TestContext對象。我結束了創建在我的測試套件特定的單元測試瀏覽器名稱添加到TRX文件像這樣:

[TestClass] 
public class ConfigurationTests 
{ 
    public TestContext TestContext { get; set; } 

    [TestMethod] 
    public void DisplayBrowserUsedForSeleniumTests() 
    { 
     string browserName = ConfigurationManager.AppSettings["DriverName"]; 
     TestContext.WriteLine("for {0} browser.", browserName); 
    } 
} 

而且在我的輸出TRX文件現在我有這樣的事情:

<UnitTestResult testName="DisplayBrowserUsedForSeleniumTests"> 
    <Output> 
    <TextMessages> 
     <Message>for Firefox browser</Message> 
    </TextMessages> 
    </Output> 
</UnitTestResult> 

最後,我改變了巡航控制XSLT轉換爲MSTest的報告顯示在摘要標題瀏覽器的信息:

<h2>Summary <xsl:value-of select="*[local-name()='Results']/*[local-name()='UnitTestResult'][@testName='DisplayBrowserUsedForSeleniumTests']"/></h2>