0

我正在试验本文的示例代码

我有一个代码的工作示例,但文章的作者谈到了 PDE 测试类列表:

PDE 测试运行程序进程将要在 PDE 测试运行中运行的测试类的逗号分隔列表作为参数。在示例代码中,要运行的单个测试类的名称是硬编码的,即 phonebookexample.dialogs.PhoneBookEntryEditorDialogTest 但 PDE 测试类列表的生成可以很容易地自动化。

他的示例中的代码在 -classnames 属性中使用了一个测试类:

<target name="run_pde_tests">
   <property name="test.classes.list" value="phonebookexample.dialogs.PhoneBookEntryEditorDialogTest"/>
   <mkdir dir="${test.reports.dir}/output/ws"/>
   <java dir="${plugin.dir}" classname="org.eclipse.equinox.launcher.Main" fork="yes" classpathref="equinox.launcher.class.path">
       <arg line="-application org.eclipse.pde.junit.runtime.uitestapplication -data ${test.reports.dir}/output/ws -dev bin -clean -port ${pde.test.port} -testpluginname PhoneBookExample -classnames ${test.classes.list}"/>
   </java>
</target>

有没有人知道如何使用 ant 生成测试类列表并将此列表提供给 org.eclipse.pde.junit.runtime.uitestapplication 的 -classnames 属性?

4

1 回答 1

0

我解决了我的问题。这是我的解决方案。我将 test.dir.totest 指向包含插件的目录。使用 java 文件创建文件集。该集合被转换为一个空格分隔的列表,并分配给一个 ant 属性。此属性在 java 任务中用于运行测试。

<!-- point to a directory with java files to PDE unit test -->
    <property name="test.dir.totest" location="/pathtomytestclasses/testplugin"/>
 <!-- Include all java files in the given directory and sub directories -->
 <path id="semantics.classpath">     
      <fileset dir="${test.dir.totest}" id="test.files">
           <include name="**/*.java"/>
      </fileset>
 </path>


 <!-- this will convert the java files to a space separated list -->
 <!-- ant place it in a javafiles ant property -->
 <!-- This property is passed in the arg line of the ant java task -->
 <!-- to run the PDE tests -->
 <pathconvert pathsep=" " property="javafiles">
      <path refid="semantics.classpath"/>
      <!-- this regex will create 3 groups -->
      <!-- group 1 is the path -->
      <!-- group 2 is the filename withouth the .java extension -->
      <!-- group 3 is the file extension -->
      <mapper type="regexp" from="^(.+)/([^/]+)$?.java" to="my.package.name.\2"/>
 </pathconvert>
于 2012-09-18T17:00:55.237 回答