2011-05-25 59 views
0

我试图从这里[1]调整pde单元测试自动化过程来处理多个测试套件。本文使用无法处理多个测试套件的org.eclipse.jdt.internal.junit.model.ITestRunListener2。我正在考虑使用org.eclipse.jdt.junit.TestRunListener。为Eclipse PDE单元自动化过程添加多测试套件支持

我试图转换包含的实现org.eclipse.jdt.internal.junit.model.ITestRunListener2的实施junit.runner.TestRunListener因为它testRunStarted()方法包括一个测试套件名称参数,但未能找到任何例如关于如何使org.eclipse.jdt.internal.junit.model.RemoteTestRunnerClient变为使用它(即使PDE测试结果协议支持它,我也不确定)。

  1. 使用JUnitCore.addTestRunListener(listener)是否能够替换整个测试结果侦听器方法?没有必要能够远程运行测试。
  2. 有关如何将多套件支持添加到[1]的任何其他建议?

[1] http://www.eclipse.org/articles/article.php?file=Article-PDEJUnitAntAutomation/index.html


你好,这是OP,无法添加保罗的CommNet韦伯斯特的答复,所以我张贴这一点。

RemoteTestRunnerClient的事情是,它根据org.eclipse.jdt.internal.junit.runner.MessageId中定义的协议将通知委托给它的侦听器,并从TCP套接字读取消息。问题在于TEST_RUN_START/END消息不包含套件的名称,导致所有测试都与同一套件相关联。

我在设置自动化测试框架的同时查看了Eclipse测试框架,但没有找到任何令人信服的理由来支持它,而不是在文章中建议的方法。我不确定,但我认为文章不使用ETF的原因是对测试结果汇总缺乏足够的支持。现在我明白能够指定哪些套件应该通过test.xml文件运行,因为我正在使用传递给'org.eclipse.pde.junit.runtime.coretestapplication'应用程序的'-classnames'参数。我不介意考虑改用ETF,但事先想要有一个令人信服的理由。底线是,我的设置做了99%的要求,我更喜欢快速-&二性解决方法,作为对抗完整的测试系统转换。

回答

0

我不认为你必须做任何事情w.r.t. RemoteTestRunnerClient。它需要ITestRunListener2,这是由TestSessionNotifier实施。这就向ITestSessionListener发布事件,它将它们转发到TestRunListener

这就是说,这篇文章中的一个指针是Eclipse Test Framework [1]。

我们用它来运行我们的插件测试。获得框架本身后,每个测试插件只需要一个test.xml [2]文件。该文件可以指定UI测试和无头测试,并可以列出该插件的多个TestSuite。我已经链接了我们的例子。

[1] http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.test/testframework.html?view=co

[2] http://dev.eclipse.org/viewcvs/viewvc.cgi/e4/org.eclipse.e4.ui/tests/org.eclipse.e4.ui.tests/test.xml?view=co&content-type=text%2Fplain