0

我正在尝试从此处 [1] 调整 pde 单元测试自动化过程以处理多个测试套件。本文使用了 org.eclipse.jdt.internal.junit.model.ITestRunListener2 无法处理多个测试套件。我正在考虑改用 org.eclipse.jdt.junit.TestRunListener 。

我试图将 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 Paul Webster 的回复,所以我发布了这个。

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%,我更喜欢快速而肮脏的解决方法,而不是完整的测试系统转换。

4

1 回答 1

0

我认为您不必做任何事情RemoteTestRunnerClient。它需要一个ITestRunListener2,由 实现TestSessionNotifier。将事件发布到ITestSessionListener实施者TestRunListenerAdapter,然后将它们转发到TestRunListener

话虽如此,那篇文章中的一个指针是指向 Eclipse 测试框架 [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 =文本%2Fplain

于 2011-05-26T12:00:22.727 回答