- 浏览: 581760 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (188)
- java (14)
- web (14)
- web service (3)
- 杂谈 (14)
- Version Control (13)
- software test (30)
- linux (17)
- database (3)
- distributed storage and computing (1)
- ejb (7)
- project building (46)
- spring & IOC (2)
- Thread (2)
- xml (2)
- tool software (0)
- [网站分类]1.网站首页原创Java技术区(对首页文章的要求: 原创、高质量、经过认真思考并精心写作。BlogJava管理团队会对首页的文章进行管理。) (0)
- project manager (9)
- OSGI (1)
- nosql (3)
最新评论
-
sp42:
好搞笑
你懂不懂xml! (2) -
cherishmmo2004:
感觉你们都很牛掰,我们做的一个运维平台也是用karaf的,用k ...
基于osgi开发大型的企业应用 -
liubey:
“自作聪明”的使用了读写锁,其实只使用ReentrantLoc ...
编码最佳实践(4)--小心LinkedHashMap的get()方法 -
liubey:
你这个代码是sublist后仍然一直持有这个sub的引用,一般 ...
编码最佳实践(5)--小心!这只是冰山一角 -
xiegqooo:
初学maven(5)-使用assembly plugin实现自定义打包
5 - Test methods, Test classes and Test groups
5.1 - Test groups
TestNG容许执行复杂的测试方法分组。不仅可以申明方法属于组,而且可以指定分组包含其他分组。
然后TestNG可以被调用,并被要求包含某些分组和排除其他的分组。
这将提供怎样划分测试的最大弹性,并且如果想运行两个不同的测试装置不需要重新编译。
例如,非常普遍的需要至少两个种类的测试
* Check-in tests. 这些测试将在提交新代码之前运行. 它们典型的被要求快速而且仅仅确认没有基础功能被破坏。
* Functional tests. 这些测试将覆盖所有的软件功能,并且必须运行至少1天,尽管理想的是连续运行.
代表性的,check-in测试是功能性测试的子集。TestNG容许用非常直接的方式说明这个。
例如: 可以这样构造测试,申明完整的测试类属于"functest"组,另外两个方法属于组"checkintest":
public class Test1 {
@Test(groups = { "functest", "checkintest" })
public void testMethod1() {
}
@Test(groups = {"functest", "checkintest"} )
public void testMethod2() {
}
@Test(groups = { "functest" })
public void testMethod3() {
}
}
调用TestNG,使用
<test name="Test1">
<groups>
<run>
<include name="functest"/>
</run>
</groups>
<classes>
<class name="example1.Test1"/>
</classes>
</test>
将运行在类中的所有测试方法,如果使用checkintest调用则将只运行testMethod1()和testMethod2().
这里由其他例子,这次使用正则表达式。假设某些测试方法可能无法在Linux上运行,测试将是类似如此:
@Test
public class Test1 {
@Test(groups = { "windows.checkintest" })
public void testWindowsOnly() {
}
@Test(groups = {"linux.checkintest"} )
public void testLinuxOnly() {
}
@Test(groups = { "windows.functest" )
public void testWindowsToo() {
}
}
你可以使用下面的testng.xml文件只启动Windows方法:
<test name="Test1">
<groups>
<run>
<include name="windows.*"/>
</run>
</groups>
<classes>
<class name="example1.Test1"/>
</classes>
</test>
注意:TestNG使用正则表达,而不是wildmats。注意这个差别。
Method groups
同样可以包含或排除个别方法:
<test name="Test1">
<classes>
<class name="example1.Test1">
<methods>
<include name=".*enabledTestMethod.*"/>
<exclude name=".*brokenTestMethod.*"/>
</methods>
</class>
</classes>
</test>
这在需要使莫个单独的方法失效而不想重新编译时非常方便,但是不建议太多的使用这个机制,因为这将可能破坏你的测试框架 如果你开始重构你的java代码(标签中使用的正则表达式可能不再匹配你的方法)
5.2 - Groups of groups
"functest" itself will contain the groups "windows" and "linux" while "checkintest will only contain "windows". Here is how you would define this in your property file:
组可以包含其他组。这些组被称为"MetaGroups"。例如,你可能想定义一个"all"组,包括"checkintest"和"functest"。"functest"自身将包含组 "windows" 和 "linux",而"checkintest"将包含"windows".
<test name="Regression1">
<groups>
<define name="functest">
<include name="windows"/>
<include name="linux"/>
</define>
<define name="all">
<include name="functest"/>
<include name="checkintest"/>
</define>
<run>
<include name="all"/>
</run>
</groups>
<classes>
<class name="test.sample.Test1"/>
</classes>
</test>
5.3 - Exclusion groups
TestNG 容许包含组也容许排除组.
例如,当由因为最近的修改而临时破坏的测试而又没有时间去修复它们时非常有用。无论如何,你想要干净的运行功能性测试,因此你想要是这些测试失效,但是记住它们重新被激活。
一个简单的解决这个问题的方法是创建一个称为"broken"的组并让这些测试方法归属它。例如,在上面的例子中,我知道testMethod2() 现在被破坏了,所有我想关闭它:
@Test(groups = {"checkintest", "broken"} )
public void testMethod2() {
}
现在我所想要做的只是在运行中排除这个组:
<test name="Simple example">
<groups>
<run>
<include name="checkintest"/>
<exclude name="broken"/>
</run>
</groups>
<classes>
<class name="example1.Test1"/>
</classes>
</test>
用这种方法,我将得到一个干净的测试运行,同时记录了那些被破坏并想要后续修复的测试。
注意:你也可以通过使用在@Test and @Before/After annotations上的"enabled"属性在个体的层面上关闭测试,
5.4 - Partial groups
你可以在类的级别上定义组,然后在方法的层次上添加组:
@Test(groups = { "checkin-test" })
public class All {
@Test(groups = { "func-test" )
public void method1() { ... }
public void method2() { ... }
}
在这个类中,method2() 属于组"checkin-test",在类的级别定义。而method1() 同时属于 "checkin-test" 和 "func-test".
发表评论
-
easymock教程-运行时返回值或者异常
2010-11-30 16:36 5692前面的教程中,我们看到easymock可以通过 ... -
easymock教程-改变同一个方法调用的行为
2010-11-30 17:06 3335在easymock中,对于mock对象的同一个方法,可 ... -
easymock教程-自定义参数匹配器
2010-11-30 18:18 4054虽然easymock中提供了大量的方法来进行参数匹配, ... -
easymock教程-目录
2010-10-14 10:44 8441easymock是目前比较流行的java mock 工 ... -
easymock教程-单元测试中的主要测试对象和依赖
2010-10-14 14:01 3639在单元测试中,通常我们都会有一个明确的测试对象,我们 ... -
easymock教程-record-replay-verify模型
2010-10-15 14:50 7276record-replay-verify 模型容许记录 ... -
easymock教程-easymock的典型使用
2010-10-15 17:14 6186关于easymock的典型使用方式,在easym ... -
easymock教程-class mocking
2010-10-26 16:54 2796前面的例子中,mock的对象都是基于interface ... -
easymock教程-使用MockControl
2010-10-26 17:18 4434在easymock中,通常我们使用一下的代码来创建m ... -
easymock教程-strict和nice
2010-11-19 11:39 4134在easymock的使用过程中,当创建mock对象时, ... -
easymock教程-创建stub对象
2010-11-23 17:51 3150前面教程中有个章节讨论到mock和stub的概念差 ... -
easymock教程-mock的限制
2010-11-25 11:12 12212easymock并不是万能的,在使用easymock时 ... -
easymock教程-放宽调用次数
2010-11-29 15:55 3246对于mock对象上的mock方法的调用,easymoc ... -
easymock教程-命名mock对象
2010-11-29 16:34 3037在创建mock对象的时候,我们可以命名mock对象。 ... -
easymock教程-参数匹配
2010-11-29 18:57 7194easymock中提供了非常多的方法来实现参数匹配,基 ... -
easymock教程-partial class mocking
2010-11-30 14:23 2875easymock中提供对于类的mock功能,我们可以方 ... -
easymock教程-mock和stub
2010-08-26 15:26 5905作为测试的基本概念,在开发测试中经常遇到mock和st ... -
推荐升级easymock到新的3.0版本
2010-06-26 20:40 1835一直在使用easymock作为mock工具,但是eas ... -
loadrunner license设置问题
2008-02-18 11:35 7449初学loadrunner,今天准备用这个工具测试一下手头的一个 ... -
TestNG官方文档中文版(1)-介绍
2008-03-18 22:25 1773最近决定开始使用TestNG ...
相关推荐
TestNG设计初衷是为了提供一种更为简洁和强大的测试方法,相较于JUnit,TestNG支持更多高级特性,如并行测试执行、依赖管理、数据驱动测试等。 #### 1.2 特性介绍 - **并行测试执行**:允许用户在同一时间运行多个...
3. **注解(Annotations)**:TestNG使用注解来标记测试类和方法,如`@Test`用于标识测试方法,`@BeforeMethod`和`@AfterMethod`分别用于在每个测试方法之前和之后执行代码。还有`@BeforeClass`、`@AfterClass`用于...
通过学习TestNG官方文档中文翻译,新手可以快速上手,理解其核心概念和功能,进一步提升自动化测试的效率和质量。在实际项目中,结合具体业务需求,灵活运用TestNG的特性,可以构建出高效、稳定的测试框架。
TestNG 提供了丰富的机制来管理测试方法、测试类以及测试组,这些机制极大地提高了测试的灵活性和可维护性。 ##### 5.1 测试组 测试组是用来对测试方法进行分类的,可以使用 `groups` 属性指定测试方法属于哪些组。...
TestNG 是一个强大的自动化测试框架,受到 JUnit 和 NUnit 的启发,但在功能和灵活性上有所增强,特别适合进行单元测试、功能测试、端到端测试和集成测试。它需要 JDK 5 或更高版本来运行。TestNG 的设计目标是为...
Selenium2 WebDriver 中文文档完整 Selenium2 WebDriver 是一个流行的自动化测试工具,用于模拟用户交互来测试Web应用程序。本文档将详细介绍 Selenium2 WebDriver 的安装、配置、基本操作和使用技巧。 安装 ...
在 Windows 系统中,安装和配置过程略有不同,具体步骤可以参考 TestNG++ 的官方文档《TestNG++ Installation & Configuration Guide for MSVC Users》。 总的来说,TestNG++ 提供了一个强大的测试框架,支持在 C++...
《软件测试(原书中文第二版)》是一本深入探讨软件测试领域的专业书籍,它针对的是不断壮大的软件行业以及随之而来的测试挑战。在软件开发过程中,测试扮演着至关重要的角色,确保产品的质量和可靠性。随着软件系统...
《软件测试(第二版中文)》是一本深入探讨软件测试领域的专著,旨在为读者提供全面、系统的软件测试知识。本书结合了最新的测试理论和技术,适用于软件开发人员、测试工程师、项目经理以及对软件质量有追求的各类从业...
至于中文帮助文档,它们通常包括API参考文档、用户指南和教程,涵盖了Spring 3.0的各个模块,详细解释了类、接口和方法的用法,以及如何配置和使用Spring框架。这些文档对于初学者快速上手和高级开发者深入理解...
HtmlUnit 是一个强大的Java库,它模拟了一个无头Web浏览器,允许开发者进行自动化测试和网页抓取。在HtmlUnit 2.8版本中,你可以利用它来执行JavaScript、处理Ajax请求,以及与网页上的各种元素交互,而无需实际运行...
7. **测试支持**:Spring 2.5包含丰富的测试工具和API,支持单元测试和集成测试,如Mockito和Spring TestNG支持,方便进行代码验证和应用测试。 8. **国际化(i18n)与本地化(l10n)**:Spring 2.5提供了对国际化...
这个"Spring2.5中文框架开发手册"旨在帮助中国开发者更好地理解和应用Spring框架,尤其是对于那些不熟悉英文文档的开发者来说,中文版的文档尤其宝贵。 首先,Spring框架的核心是依赖注入(Dependency Injection,...
《JUnit in Action 中文版》是一本专注于Java单元测试框架JUnit的专业书籍,旨在帮助开发者深入理解和熟练运用这个强大的工具。本书结合实际案例,详细讲解了如何有效地进行单元测试,提升软件开发的质量和效率。 ...
这个中文帮助文档详尽地介绍了如何使用Selenium2.0进行网页自动化操作,非常适合初学者入门。以下是对文档中关键知识点的详细阐述: ### 1. WebDriver基础 #### 1.1 下载Selenium2.0的lib包 首先,要开始使用...
中文API文档通常包含Selenium的所有方法、类和对象的详细说明,以及如何在实际项目中使用它们。例如,`WebDriver`类中的`get()`方法用于导航到指定URL,`findElement()`用于查找页面上的特定元素,`click()`用于...
6. **报告美化**: 使用ExtentReports和TestNG美化测试报告,提高可读性和易用性。 #### 环境配置 1. **JDK**: 需要1.7及以上版本。 2. **IDE**: 推荐使用Eclipse或IntelliJ IDEA。 3. **RestAssured**: 最新版。 4...
- **测试工具**:JUnit、TestNG 等。 - **项目**:GitHub、GitLab 上的项目。 - **论坛**:Stack Overflow、JavaWorld 等。 - **文档**:Oracle 官方文档、书籍等。 #### 七、学习路径 - **Java 语法基础**:理解...