>我有一包冒烟测试,它运行并从表中随机提取数据,并在另一种方法中搜索该数据并在之后断言。如果不存在数据,测试将失败。我有一个名为RandomVinSelect((的可重用方法。如果没有数据,我想停止测试。我已经搜索了测试结果警告,指出无法运行测试而不是测试失败。在这一点上,我被难住了。这是我拥有的代码,我不想在 UI 之后运行这些行。随机VINS选择,如果未找到数据。我认为使用 Xunit 可能没有办法做到这一点,它只是通过或失败......
public static string RandomVinSelect(this Browser ui, string table,
string selector)
{
//I want to stop test here if no data exist or create a dataexist
//method that stops a test.
int rows = ui.GetMultiple(table).Count;
Random num = new Random();
string randomnum = Convert.ToString(num.Next(1, rows));
string newselector = selector.Replace("1", randomnum);
string vin = ui.Get(newselector).Text;
return vin;
}
也许只是将冒烟测试放在单独的测试包或集合中,并包含一个测试,该测试只是检查它是否可以获取数据,然后当您运行这组测试时,如果第一个测试失败,您知道这只是由于没有可用的数据。
不理想,但可能足够好?
我安装了新的nuget包(xunit。SkippableFact(将[SkippableFact]添加到我的烟雾测试中。然后,我创建了一个可以调用该方法来检查并查看数据是否可用,并在该方法中运行 Skip.If(条件,"我的消息"(,并在不存在数据时提前关闭测试。然后在测试资源管理器中显示警告符号。
public static void IsDataAvaiable(this Browser ui)
{
bool data = true;
string pagecount = ui.GetPageCount();
if (pagecount == "0") data = false;
Skip.If(data == false, "The test could not run because no data available for validation.");
}