我正在尝试从此处 [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 测试结果协议支持它,我也不确定)。
- 使用 JUnitCore.addTestRunListener(listener) 是否能够替换整个测试结果监听器方法?无需能够远程运行测试。
- 关于如何向 [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%,我更喜欢快速而肮脏的解决方法,而不是完整的测试系统转换。