我有一个名为myTestMethod的数据驱动CodedUI测试方法,它使用XML提供输入数据。
对于数据集上的每次运行,CodedUI在Test Explorer中报告类似的内容:
Test Passed - myTestMethod (Data Row 0)
Test Passed - myTestMethod (Data Row 1)
Test Failed - myTestMethod (Data Row 2) <error details>
Test Failed - myTestMethod (Data Row 3) <error details>
我想知道是否有办法将测试名称设置为更可识别的东西(可能来自输入数据集本身)。
似乎CodedUI使用TestContext.TestName进行此报告,但它是一个只读属性。有什么办法可以把它设置在其他地方吗?
请帮忙。 谢谢, Harit
答案 0 :(得分:1)
好的,我现在明白了。我实际上有一个类,我写一般函数。其中一个是为了保存我想要的测试结果。
我使用基于XML的数据驱动。那么我的Employe1和Employe2是同一个test_method的不同运行。
找到[TestCleanup()]并在这里调用一个函数来保存您需要的日志。
日志可以用csv格式保存,纯文本用;例如,使用StreamWriter。
namespace NAME_SPACE
{
[CodedUITest]
public class Program_Something_BlaBla
{
Stopwatch stopWatch = new Stopwatch();
[TestMethod(), Timeout(999999999)]
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", PATH_XML, "DATOS", DataAccessMethod.Sequential)]
public void Program_Something_BlaBla_Method()
{
string employe = TestContext.DataRow["EMPLOYE"].ToString();
try
{
//Test actions
...
{
catch (Exception g)
{
...
return;
}
}
#region Additional test attributes
// You can use the following additional attributes as you write your tests:
////Use TestInitialize to run code before running each test
[TestInitialize()]
public void MyTestInitialize()
{
stopWatch.Start();
...
}
//Use TestCleanup to run code after each test has run
[TestCleanup()]
public void MyTestCleanup()
{
stopWatch.Stop();
...
Common.EndTest(employe);
}
#endregion
希望它有所帮助,
答案 1 :(得分:0)
我不想说这是不可能的,但是在编译时填充了测试资源管理器,并且数据将在运行时被提取。
答案 2 :(得分:0)
我不认为这是可能的。唯一的方法是读取生成的“TRX”文件(因为它是xml)并通过读取csvs替换值。可能需要做一个工具,但开销很大。