用Jython构建JUnit测试包
作者:网络转载 发布时间:[ 2013/1/7 15:07:01 ] 推荐标签:
在开始时,要保证设置了正确的系统属性。在内部,Jython 将使用 python.home 属性来定位它所需要的文件。终会调用 getClassNamesViaJython() 方法,在这里面会有一些奇妙的事情发生,如在清单 3 中将会看到的。
清单 3. 从 Python 运行时提取 Java 对象
/**
* Get list of tests we're going to add to our suite
* @return List A List of String objects, each representing class name of a TestCase
*/
private List getClassNamesViaJython() {
// run python script
interpreter.execfile( getPathToScript() );
// extract out Python object named PYTHON_OBJECT_NAME
PyObject allTestsAsPythonObject = interpreter.get( PYTHON_OBJECT_NAME );
// convert the Python object to a String[]
String[] allTests = (String[]) allTestsAsPythonObject.__tojava__( String[].class );
// add all elements of array to a List
List testList = new ArrayList();
testList.addAll( Arrays.asList( allTests ) );
return testList;
}
首先,对 Python 文件进行判断。然后,从 Python 运行时提取出一个 PyObject。这是得到的对象,它包含将构成测试包的所有测试用例的类名(记住 ―― PyObject 是 Python 对象的 Java 运行时对应物)。然后创建具体的 List 并用 PyObject 填充它,使用 __tojava__ 指示 PyObject 将其内容转换为一个 Java String 数组。后,将控制返回 getTestSuite(),在这里装载 Jython 标识的测试用例,并将它们添加到组合包(composite)中。
在开发环境中安装测试装具模块
现在对于测试装具模块如何工作已经有了很好的认识,可能迫不及待要自己试试它了。您将需要完成以下步骤以配置 Eclipse 来运行这个装具模块。(如果使用不同的 IDE,应当可以容易地针对您的环境修改这些步骤。)
安装 Jython 2.1,如果还没安装的话。(链接请见 参考资料 )。
拷贝 getalltests.py 到主目录。
编辑 getalltests.py 第 25 行以指定到源文件的根路径,会搜索在这个位置下的所有目录中与 org 包中 *Text.java 匹配的文件名。
如果有必要,修改第 54 行以改变根包名(例如,改为 com)。
将 DynamicTestSuite.java 拷贝到源树中。
将以下 JAR 添加到 Eclipse 项目中:
junit.jar (JUnit 框架二进制文件,下载信息请参阅 JUnit 的 Web 网站)。
jython.jar(Jython 二进制文件,位于 Jython 安装目录)。
将 DynamicTestSuite 类装载到 Eclipse Java 源文件编辑器中。执行以下步骤之一:
在 Package Explorer 视图中选择 DynamicTestSuite,或者
按 Ctrl+Shift+T 并在 Choose Type 输入字段键入 DynamicTestSuite。
从文件菜单栏选择 Run,然后选择 Debug...。
选择 JUnit 配置。
单击 New 按钮。将会创建一个新的 JUnit 目标,DynamicTestSui