我正在使用ITestListener,用于生成范围报告的范围管理器。它工作正常。我正在从另一个方法调用5@Test方法。报告(TestNG
请检查我的示例代码:建议任何其他方法来获得报告
我的TestNG XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="logixexpress" parallel="false">
<listeners>
<listener class-name="common.CommonITestNGListener"></listener>
</listeners>
<parameter name = "Browser" value = "Chrome"></parameter>
<parameter name = "DataFile" value = "\\TestData\\Express.xlsx"></parameter>
<parameter name = "AppRepoFile" value = "\\OR\\AppRepo.properties"></parameter>
<test name="Express Test Execution">
<classes>
<class name="logixexpress.Driver">
</class>
</classes>
</test>
</suite>
我的驱动程序脚本:
public class Driver extends commonhelper{
public static int Drvrownum = 3;
@Test
public void ExecuteDriver() throws Exception {
for (int i = Drvrownum; i < (ExcelWS.getLastRowNum() + Drvrownum); i++) {
String mname = GetDatafromCell("Global", Drvrownum, "ActionName");
String EF = GetDatafromCell("Global", Drvrownum, "ExecutionFlag");
if (EF.equalsIgnoreCase("false")) {
Drvrownum = Drvrownum + 1;
continue;
}
else {
switch (mname) {
case "WorkQueue":
WorkQueue wq = new WorkQueue();
wq.RunWQcases();
Drvrownum = Drvrownum + 1;
break;
case "XXX":
System.out.println("All Iterations Completed");
Drvrownum = Drvrownum + 1;
return;
default:
break;
}
}
}
}
}
And my test Script:
public class WorkQueue extends commonhelper{
public static int WQrownum = 2;
public static String EXLFilePath = scrpath + "\\TestData\\Express.xlsx";
@Test
public void RunWQcases() throws Exception {
setExcelFile(EXLFilePath, "WorkQueue");
for (int i = WQrownum; i < (ExcelWS.getLastRowNum() + WQrownum); i++) {
String WQMname = GetDatafromCell(WQrownum, "ActionName");
String AEF = GetDatafromCell(WQrownum, "ExecutionFlag");
if (AEF.equalsIgnoreCase("false")) {
WQrownum = WQrownum + 1;
continue;
}
else {
switch (WQMname) {
case "ExecuteWQ":
ExecuteWQ();
WQrownum = WQrownum + 1;
break;
case "openchart":
openchart();
WQrownum = WQrownum + 1;
break;
case "XXX":
System.out.println("Sub Class Iterations Completed");
WQrownum = WQrownum + 1;
return;
}
}
}
}
@Test
public void ExecuteWQ() throws Exception {
driver.findElement(By.linkText("Work Queue")).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Coding WQ")));
driver.findElement(By.linkText("Coding WQ")).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//table[@class='main']")));
}
@Test
public void openchart() throws Exception {
WebElement wqtable = driver.findElement(By.xpath("//table[@class='main']"));
List<WebElement> trow = wqtable.findElements(By.tagName("tr"));
for (int i = 0; i < trow.size(); i++) {
boolean getrow = false;
List<WebElement> tcol = trow.get(i).findElements(By.tagName("th"));
System.out.println("Number of Columns = " + tcol.size());
for (int j = 0; j < tcol.size(); j++) {
if (tcol.get(j).getText().equalsIgnoreCase("Action")) {
driver.findElement(By.className("grid-edit")).click();
getrow = true;
break;
}
}
if (getrow) {
break;
}
}
Thread.sleep(2000);
}
}
是的,这是对的。我想基于excel文件控制方法的执行。
有什么解决办法可以摆脱我的报告问题吗?
我编写了如下代码:我正在从TestNG XML文件中执行类“驱动程序”。我的通用助手包含@之前,@之后
是的,这是对的。我想基于excel文件控制方法的执行。有什么办法可以解决我的报告问题吗?
我编写了如下代码:我正在从TestNG XML文件中执行类“驱动程序”。我的通用助手包含@之前,@之后
public class Driver extends commonhelper{
public static int Drvrownum = 3;
@Test
public void ExecuteDriver() throws Exception {
for (int i = Drvrownum; i < (ExcelWS.getLastRowNum() + Drvrownum); i++) {
String mname = GetDatafromCell("Global", Drvrownum, "ActionName");
String EF = GetDatafromCell("Global", Drvrownum, "ExecutionFlag");
if (EF.equalsIgnoreCase("false")) {
Drvrownum = Drvrownum + 1;
continue;
}
else {
switch (mname) {
case "WorkQueue":
WorkQueue wq = new WorkQueue();
wq.RunWQcases();
Drvrownum = Drvrownum + 1;
break;
case "XXX":
System.out.println("All Iterations Completed");
Drvrownum = Drvrownum + 1;
return;
default:
break;
}
}
}
}
}
public class WorkQueue extends commonhelper{
public static int WQrownum = 2;
public static String EXLFilePath = scrpath + "\\TestData\\Express.xlsx";
@Test
public void RunWQcases() throws Exception {
setExcelFile(EXLFilePath, "WorkQueue");
for (int i = WQrownum; i < (ExcelWS.getLastRowNum() + WQrownum); i++) {
String WQMname = GetDatafromCell(WQrownum, "ActionName");
String AEF = GetDatafromCell(WQrownum, "ExecutionFlag");
if (AEF.equalsIgnoreCase("false")) {
WQrownum = WQrownum + 1;
continue;
}
else {
switch (WQMname) {
case "ExecuteWQ":
ExecuteWQ();
WQrownum = WQrownum + 1;
break;
case "openchart":
openchart();
WQrownum = WQrownum + 1;
break;
case "XXX":
System.out.println("Sub Class Iterations Completed");
WQrownum = WQrownum + 1;
return;
}
}
}
}
@Test
public void ExecuteWQ() throws Exception {
driver.findElement(By.linkText("Work Queue")).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("Coding WQ")));
driver.findElement(By.linkText("Coding WQ")).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//table[@class='main']")));
}
@Test
public void openchart() throws Exception {
WebElement wqtable = driver.findElement(By.xpath("//table[@class='main']"));
List<WebElement> trow = wqtable.findElements(By.tagName("tr"));
for (int i = 0; i < trow.size(); i++) {
boolean getrow = false;
List<WebElement> tcol = trow.get(i).findElements(By.tagName("th"));
System.out.println("Number of Columns = " + tcol.size());
for (int j = 0; j < tcol.size(); j++) {
if (tcol.get(j).getText().equalsIgnoreCase("Action")) {
driver.findElement(By.className("grid-edit")).click();
getrow = true;
break;
}
}
if (getrow) {
break;
}
}
Thread.sleep(2000);
}
}
如果我正确理解了这个问题,那么问题是TestNG报告没有提供关于从其他方法调用的测试方法的任何信息。这个问题包括范围报告,但现在,我只回答TesNG部分,
不
在您的Test方法中,如果调用另一个Test方法,并且您在xml文件中只包含了调用函数,TestNG将执行这两个方法,但在执行测试时只计算1。例如,如果您编写了以下内容:
@Test
public void test1()
{
test2()
test3()
}
@Test
public void test2()
{
}
@Test
public void test3()
{
}
并且您在xml文件中只包含了test1
方法,TestNG将只考虑执行一个测试方法,并相应地准备报告。
此外,以这种方式设计测试是一种不好的做法。在所有理想情况下,各个测试应完全独立。如果是单个流,那么您可能应该将两个测试合并。如果不是这样,并且您必须使用一个测试到另一个测试的输出,您可以看到这一点。
问题内容: 我有一个验收测试用例,结果是纯文本。我想使用Jenkins来显示结果,并且JUnit格式适合我。 因此,我想检查是否存在用于生成JUnit格式XML的python代码,以便可以轻松添加我的解析代码。 问题答案: 我发现一个python模块https://bitbucket.org/db_atlass/python-junit-xml-output- module/ ,看起来很适合我的需
我试图使用TestNg reporter信息组合一个测试报告以包含自定义信息,但遇到了一个问题,surefire报告重复了我使用reporter.log()输出的任何内容。 如果我使用TestNg Eclipse插件运行这些报告,我会在reporter output(在TestNg测试输出中)下得到以下输出: 自定义输出在这里 自定义输出在这里 自定义输出在这里 下面是创建输出的失败重写: 我只是
我的build.gradle是这样配置的: 下面是一个简单的测试: 当我执行测试时,我在控制台中看到了这一点: 但测试报告中没有任何内容: 我做错了什么?如何将JUnit 5结果集成到测试报告窗口中? 我正在使用Intellij 2016.2
问题内容: 我已经调整了标准的果冻模板,以便在表格中显示当前的测试结果,但是我真的希望能够显示差异,如詹金斯自己的测试结果页面中所示。 例如: 问题答案: 为Email Ext插件而不是Jelly模板编写一个Groovy模板。在Groovy模板中,您可以访问用于构建的Build对象。然后,可以对其调用getTestResultAction以获得构建的AbstractTestResultAction
问题: TestNG正在运行所有172个测试,但是它只报告了81个测试运行,没有报告一些失败(实际上有两个测试失败,但只报告了一个)。 似乎未报告的测试是有什么方法可以让TestNG正确识别这些测试并正确报告它们的结果吗?
一旦configure确定了某个特征是否存在,它将如何记录这一信息?这里有四种记录方式: 定义一个C预处理器符号、在输出文件中设置一个变鼠、为将来运行configure而把结果储存到一个缓存文件中, 以及打印一条消息以便让用户知道测试的结果。 定义C预处理器符号 对一个特征的检测的常见回应是定义一个表示测试结果的C预处理器符号。这是通过调用AC—DEFINE 或者AC—DEFINE—UNQUOTE