1.-测试结果
1.1-成功,失败和断言
测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释)。

您的测试方法通常由可能引发异常的调用或各种断言(使用Java“ assert”关键字)组成。“断言”失败将触发AssertionErrorException,这反过来会将方法标记为失败(如果未看到断言错误,请记住在JVM上使用-ea)。

这是一个示例测试方法:

@Test
public void verifyLastName() {
assert “Beust”.equals(m_lastName) : “Expected name Beust, for” + m_lastName;
}

TestNG还包括JUnit的Assert类,该类使您可以对复杂对象执行断言:

import static org.testng.AssertJUnit.*;
//…
@Test
public void verify() {
assertEquals(“Beust”, m_lastName);
}

请注意,上面的代码使用静态导入,以便能够使用 assertEquals方法而不必在其类之前添加前缀。

1.2-日志和结果
测试运行的结果在启动SuiteRunner时指定的目录中的index.html文件中创建。该文件指向包含整个测试运行结果的各种其他HTML和文本文件。

使用TestNG与监听器和报告器生成自己的报告非常容易:

侦听器实现org.testng.ITestListener接口,并在测试开始,通过,失败等时实时通知。

报告程序实现org.testng.IReporter接口,并在TestNG已运行所有套件时收到通知。IReporter实例接收描述整个测试运行的对象列表。

例如,如果要生成测试运行的PDF报告,则无需实时通知测试运行,因此您应该使用IReporter。如果您想编写测试的实时报告,例如带有进度条的GUI或在每次测试被调用时显示点(“。”)的文本报告程序(如下所述),则ITestListener是您的最好的选择。

1.2.1-日志侦听器
这是一个显示“。”的侦听器。对于每个通过的测试,对于每个失败,都为“ F”,对于每个跳过均为“ S”:

public class DotTestListener extends TestListenerAdapter {
private int m_count = 0;

@Override
public void onTestFailure(ITestResult tr) {
log(“F”);
}

@Override
public void onTestSkipped(ITestResult tr) {
log(“S”);
}

@Override
public void onTestSuccess(ITestResult tr) {
log(".");
}

private void log(String string) {
System.out.print(string);
if (++m_count % 40 == 0) {
System.out.println("");
}
}
}

在此示例中,我选择扩展TestListenerAdapter,该方法使用空方法实现ITestListener,因此我不必从我不感兴趣的接口中覆盖其他方法。您可以根据需要直接实现该接口。

这是我调用TestNG来使用此新侦听器的方法:

java -classpath testng.jar;%CLASSPATH% org.testng.TestNG -listener org.testng.reporters.DotTestListener test\testng.xml

请注意,当您使用-listener时,TestNG将自动确定您要使用的侦听器的类型。

1.2.2-日志记者
该org.testng.IReporter接口只有一个方法:

public void generateReport(List suites, String outputDirectory)

当所有套件都已运行时,TestNG将调用此方法,您可以检查其参数以访问刚刚完成的运行中的所有信息。

1.2.3-JUnitReports
TestNG包含一个侦听器,该侦听器获取TestNG结果并输出一个XML文件,然后可以将其馈送到JUnitReport。 这是一个示例,以及创建此报告的ant任务:


注意:JDK 1.5和JUnitReports当前不兼容,无法使用框架版本,因此您需要指定“ noframes”才能使其正常工作。

1.2.4-Reporter API
如果需要日志应在生成的HTML报告中显示的消息,则可以使用org.testng.Reporter类:

Reporter.log (“已呼叫M3” );

1.2.5-XML报告
TestNG提供了一个XML报告程序,用于捕获JUnit报告中不提供的TestNG特定信息。当用户的测试环境需要使用JUnit格式无法提供的具有TestNG特定数据的XML结果时,此功能特别有用。记者可以通过使用命令行注入TestNG的-reporter。

这是一个示例用法:-reporter org.testng.reporters.XMLReporter:generateTestResultAttributes = true,generateGroupsAttribute = true。

下表详细介绍了可以传递的所有选项。确保使用:

: -将报告者名称与其属性分开

= -分隔属性的键/值对

, -分隔多个键/值对
以下是此类报告器的输出示例:

该报告程序与其他默认侦听器一起注入,因此默认情况下您可以获得这种类型的输出。侦听器提供了一些属性,可以对报告器进行调整以满足您的需求。下表包含这些属性的列表,并附有简短说明:

为了配置此报告程序,可以在命令行中使用-reporter选项,也可以将Ant 任务与嵌套的元素一起使用。对于其中的每个,您都必须指定org.testng.reporters.XMLReporter类。请注意,您无法配置内置报告器,因为该报告器仅使用默认设置。如果只需要

带有自定义设置的XML报告,则必须使用两种方法之一手动添加它并禁用默认侦听器。

1.2.6-TestNG退出代码
当TestNG完成执行时,它将退出并返回代码。

可以检查此返回码以了解故障的性质(如果有的话)。

下表总结了TestNG当前使用的不同退出代码。

Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)相关推荐

  1. java自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  2. java testng 优化_Java自动化测试框架-10 - TestNG之测试结果篇(详细教程)

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  3. java 自动化测试报告_Java自动化测试框架-10 - TestNG之测试结果篇

    1.-测试结果 1.1-成功,失败和断言 测试被认为是成功的,如果它不引发任何异常完成,还是它扔的预期异常(请参阅文档expectedExceptions属性上找到的@Test注释). 您的测试方法通 ...

  4. Java自动化测试框架-09 - TestNG之依赖注入篇 (详细教程)

    1.-依赖注入 TestNG支持两种不同类型的依赖项注入:本机(由TestNG本身执行)和外部(由诸如Guice的依赖项注入框架执行). 1.1-本机依赖项注入 TestNG允许您在方法中声明其他参数 ...

  5. Java自动化测试框架-04 - TestNG之Test Method篇 - (详细教程)

    简介 按照上一篇的计划,这一篇给小伙伴们分享一下测试方法. 一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递 ...

  6. Java自动化测试框架-03 - TestNG之Test Group篇 - (详细教程)

    简介 其实这篇文章的group宏哥在上一篇中就提到过,但是就是举例一笔带过的,因此今天专门有一篇文章来讲解Group的相关知识.希望大家茅塞顿开 ,有着更进一步认识和了解测试组. 一.Test Gro ...

  7. Java自动化测试框架-11 - TestNG之annotation与并发测试篇 (详细教程)

    1.简介 TestNG中用到的annotation的快速预览及其属性. 2.TestNG基本注解(注释) 注解 描述 @BeforeSuite 注解的方法只运行一次,在当前suite所有测试执行之前执 ...

  8. Java自动化测试框架-01 - TestNG之入门篇 - (详细教程)

    TestNG是什么? TestNG按照官方的定义: TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便. TestNG是一个开源自动化测试框 ...

  9. Java自动化测试框架-08 - TestNG之并行性和超时篇 (详细教程)

    一.并行性和超时 您可以指示TestNG以各种方式在单独的线程中运行测试. 可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中.这个属性可以带有如下这样的值: 二.并 ...

最新文章

  1. 一不小心,删错了,还把回收站清空了,咋办啊?
  2. PCIPCIE MSI中断
  3. css 动态rem_【面试题】CSS知识点整理(附答案)
  4. 信息系统项目管理师:第4章:项目整体管理与变更管理(2)
  5. 聚焦实战,架构升级!
  6. java导出jar带第三方库_在.jar文件中导出java库
  7. resttemplate 设置请求头_Jmeter信息头管理器常用的三种传参格式
  8. Java获取资源的路径
  9. MySQL 中的共享表空间与独立表空间,用哪个好呢?
  10. N!阶层末尾有多少0
  11. CNNIC中国互联网络发展状况统计报告
  12. PS案例提升 【第1节】抠图--薄、透、露的朦胧美 案例二:扣取婚纱新娘
  13. 聚类——谱聚类算法以及Python实现
  14. js校验 身份证号18位
  15. 柯美文件服务器,柯尼卡美能达复印机共享SMB文件扫描
  16. 电脑休眠后无法唤醒怎么办?
  17. SpellGCN:将语音学和视觉相似性结合到汉语拼写检查的语言模型
  18. IOS app 上线流程
  19. 国防科大计算机学院贾焰,国防科大教师中院士顶级选手
  20. 谷歌 Android 13 曝光

热门文章

  1. CAD环境中求算接合表面积
  2. lz0-007 读书笔记03
  3. Ansible 系统概述与部署(1)
  4. 基本数据类型知识点补充
  5. C# 抗变与协变的理解
  6. Matlab-Octave中绘制网格图和等高线:mesh 和 surf
  7. 获取自己主机外网ip
  8. python小练——下载指定url中的图片
  9. Redis缓存异常的容错实现方法( .net)
  10. No module named flask.ext.script 解决方法