在我们的Cruise Control构建中,我们为3个浏览器运行了一套Selenium测试。为此,我们通过MSTest运行相同的测试套件,但我们在每次运行之间更改app.config文件以设置要使用的浏览器。
问题是在Cruise Control的MSTest Report页面中,我们看到了三次测试运行,但是我们无法看到每次测试运行使用的浏览器。
理想情况下,我想做一些事情,例如将浏览器的名称作为参数传递给MSTest,以便将其写入trx文件,但我没有看到任何可能性。我唯一想到的是为trx文件提供指定的输出名称,然后使用Powershell脚本来更改此文件中的xml。
你有更好的主意吗?
答案 0 :(得分: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>
最后,我更改了MSTest报告的Cruise Control xslt转换,以在摘要标题中显示浏览器信息:
<h2>Summary <xsl:value-of select="*[local-name()='Results']/*[local-name()='UnitTestResult'][@testName='DisplayBrowserUsedForSeleniumTests']"/></h2>
答案 1 :(得分:1)
以下是一些可以帮助您的帖子:
我没有尝试过,但他们听起来像是你正在寻找的。 p>
修改强> 就这种情况而言,上面的链接有一天会被打破:
您可以将TestProperty属性添加到TestMethod,它将显示在您的trx文件中。
[TestProperty("Severity", "1")]
谢谢,
Anuj
由singhhome于2010年8月20日星期五下午2:34标记为回答 2010年8月20日星期五上午5:53
在TRX文件中添加其他文件 - 您可以在TestContext中为每次测试提供以下方法的帮助。
<强> TestContext.AddResultFile(文件路径)强> 其中filePath是您要在测试结果文件中添加的文件的路径。
要在测试运行期间获取TestResult文件名,您可以使用以下属性来获取此
<强> TestContext.TestRunDirectory 强> 它将为您提供存储日志的目录名称,以便在测试运行时使用完整路径。对于测试运行,目录名和trx文件名将是相同的,因此如果您将此字符串与.trx连接,则可以很好地访问测试结果文件。
以下是示例代码段。
[TestMethod]
public void CodedUITestMethod1()
{
//add a file stored at c:\ location to the test result file
this.TestContext.AddResultFile(@"c:\file.bmp");
//Print the trx file name
string testRunDirectory = TestContext.TestRunDirectory;
string testRunTRXFileName = String.Concat(testRunDirectory, ".trx");
Console.WriteLine("TestResult file : " + testRunTRXFileName);
}
Deepak.Singhal [MSFT]微软员工于2010年2月10日星期三下午1:32提出答案 Flying_Tiger在2010年2月10日星期三下午1:52标记为答案