您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > junit
用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

上一页12下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd