Concordion 是什么
Concordion 是一种 自动化测试框架 ,是测试及文档,Specification By Example
的一种实现,可以用自然的语言来描述软件功能,能很好的描述用户的 Story。它不仅支持 Java
,也同样支持.NET
, Python
, Scala
, Ruby
. 是 JUnit
的扩展,写好的测试不仅是格式良好的测试文档,同样也可以当成 JUnit
单元测试来跑
Concordion 工作原理
简单的说,Concordion 测试只是对 JUnit
的扩展,但是它可以从你写好的测试文(html)中读取测试数据,通过传统的 JUnit
来跑测试,并将测试结果输出为具有红绿标记(表示失败或成功 的 html 文档(基于原测试文档)
在上图中,Specification 即为我们写的 html 测试文档,与普通的 html文档不同的是,我们需要在其中加入一些名为 concordion
的标签,浏览器将忽略这些标签,但 Concordion
用这些标签来执行测试指令,比如调用 Fixture
中的测试函数等。Fixture 为继承自 ConcordionTestCase
(最终继承自 JUnit 测试类)的测试用例,这些测试用例将调用我们自己所开发的功能代码
Concordion 在一起源码中的作用
作为登陆和注册以及关闭浏览器部分的测试
concordion实现 hello world
下载 Concordion 和其所依赖的包
http://concordion.org/download/java/markdown/使用 IDEA 新建一个 Concordion 项目
- 将所的 jar 包加入库中
在 src 下建立两个文件夹,main 和 test, 并且在 main 文件夹里创建文件
HelloWorld.java
, test 文件夹里面创建HelloWorld.html
和HelloWorldTest.java
HelloWorld.html中添加如下代码
<html xmlns:concordion="http://www.concordion.org/2007/concordion">
<body>
<p>Should print:</p>
<p concordion:assertEquals="sayHello()">HelloWorld</p>
</body>
</html>
- HelloWorld.java中添加如下代码
package main;
public class HelloWorld
{
public String sayHelloWorld()
{
return "HelloWorld";
}
}
- HelloWorldTest.java中添加如下代码
package test;
import main.HelloWorld;
import org.concordion.integration.junit4.ConcordionRunner;
import org.junit.runner.RunWith;
@RunWith(ConcordionRunner.class)
public class HelloWorldTest
{
public String sayHello()
{
return new HelloWorld().sayHelloWorld();
}
}
- 在 HelloWorldTest.java中
- 单击
run HelloWorldTest
- 复制下方的
file:
后面的内容
- 在浏览器粘贴复制的网址,绿色表面测试Hello World成功