最近看了下testng,的确发觉testng是强大的工具,其中留意到testng中有一个
不错的功能,是在运行时期动态添加注解,先来看下面的例子:
public class Mytest {
@Test(invocationCount = 10)
public void verify() {
// ...
}}
这个是固定了10次的重复测试,但如果要在程序中动态去判断呢,可以实现
IAnnotationTransformer接口
public interface IAnnotationTransformer {
public void transform(ITest annotation, Class testClass,
Constructor testConstructor, Method testMethod);
}
编写自定义类去实现它:
public class MyTransformer implements IAnnotationTransformer {
public void transform(ITest annotation, Class testClass,
Constructor testConstructor, Method testMethod)
{
if ("verify".equals(testMethod.getName())) {
annotation.setInvocationCount(15);
}
}
}
很明显,IAnnotationTransformer接口中,给出了注解,类,构造函数,测试方法四个参数,因此已经足够可以判断进行动态了。再看一个例子:
public class MyTransferTest {
@Test
public void test1() {
System.out.println("=================test1=============");
}
@Test
public void test2() {
System.out.println("=================test2=============");
}
}
public class MyTransformer implements IAnnotationTransformer {
@SuppressWarnings("rawtypes")
@Override
public void transform(ITestAnnotation annotation, Class testClass,
Constructor testConstructor, Method testMethod) {
System.out.println(" MyTransformer "+testMethod);
if ("test1".equals(testMethod.getName())) {
annotation.setInvocationCount(5);
}
}
}
分享到:
相关推荐
TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便。包括以下方面: 1.注解 2.可以从单元测试到集成测试 ...2.添加 一个testng.xml文件 3.运行 testNG
露天测试NG TestNG 测试框架具有特定于 Alfresco 测试的附加特性和功能。 该项目提供 testng 和 annotation,允许 alfresco 管理跨不同项目的测试...在 maven pom 中添加依赖 < groupId>org.alfresco.test < a
testng-Selenium删除 TestNG ...Maven 依赖您可以将TestNG-Selenium添加到现有项目中,如下所示: 对于新项目,您可以通过在终端使用以下命令快速设置: ```shell mvn archetype:generate \ -DarchetypeGroupId=...
编写测试(不再需要在单独的带注释的方法中进行每个测试) 有意义的测试名称 每个测试用例的彩色输出 易于编写以数据为中心的测试(例如,以编程方式生成尽可能多的测试用例,例如在循环中) 用intercept轻松拦截...
集成的Selenide用于处理页面上的动态行为,并在页面对象中编写更少的代码 自定义注释,用于访问和映射存储在树状结构中的测试数据,以简化数据驱动的测试 一种添加您自己的CLI命令以运行测试或处理测试数据的简单...
欢迎使用Selenium自动截图的存储库,以获取失败的TestNg测试 ...将此jar放在您的类路径中,并用特殊注释为您的类添加注释()。 没有第三方依赖性。 如何使用 - 在pom.xml文件中添加以下maven依赖项: < gr
赛琳在Java中启用测试自动化SeLion建立在TestNG和Selenium的基础上,提供了一组功能,可让您在短时间内使用WebDriver并开始运行。 它可以用于测试Web和移动应用程序。 您可以添加为Maven依赖项的客户端模块。 基于...
16.5.2 TestNG简介 16.5.3 测试持久层 16.5.4 考虑性能基准 16.6 小结 第17章 JBoss Seam简介 17.1 Java EE 5.0编程模型 17.1.1 JSF详解 17.1.2 EJB 3.0详解 17.1.3 用JSF和EJB ...
10.3 为应用添加Spring BlazeDS支持 406 10.3.1 问题 406 10.3.2 解决方案 406 10.3.3 工作原理 406 10.4 通过BlazeDS/Spring暴露服务 411 10.4.1 问题 411 10.4.2 解决方案 411 10.4.3 工作原理 ...
10.3 为应用添加Spring BlazeDS支持 406 10.3.1 问题 406 10.3.2 解决方案 406 10.3.3 工作原理 406 10.4 通过BlazeDS/Spring暴露服务 411 10.4.1 问题 411 10.4.2 解决方案 411 10.4.3 工作原理 ...
添加以下代码块,就在以下文件中的侦听器块(删除或注释所有其他测试块)之后 - “stripe/src/test/resources/testng.xml” 将代理文件复制到以下位置“stripe/src/test/resources/artifacts/ESB/config/proxies/...
如果您有更好的解决方案,请添加您的注释,代码并创建PR。 我很乐意向您学习:) 第1部分问题: 在一个表中,有价格的项目很少,您如何汇总所有价格? 如何单击提供具有名称和标题的属性的元素 当您单击按钮时,...
引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能 引入API模板,根据token作为登录令牌,极大的方便了APP接口开发 引入Hibernate Validator校验框架,轻松实现后端校验 引入云...
使用Selenium 3.x + Testng + Jenkins + Maven 使用页面对象模型 使用log4j 如何使用: 安装maven配置环境变量 git clone mvn test也可以直接使用jenkins,触发mvn test 使用接口处理不同版本的页面,使用java...
将 TestNG 侦听器注释 EverrestJetty.class 添加到您的测试类。 将您的休息服务定义为参数。 everrest-assured 将启动 Jetty 并在 everrest 的帮助下部署您的服务。 因此,您可以放心地进行测试。 @Listeners ( ...