我有一个测试插件的功能。我使用ant+jococo从每个插件运行测试套件。测试套件具有与"测试"相同的名称。现在使用硬编码的插件名称,如<run-test-macro test='plugin.name.Test'/>
(目标中的硬编码值)。
我怎么能做到这一点,而不使用硬编码的插件名称,我想从功能xml在ANT和foreach插件调用我的宏的插件名称。
我找到了方法,但我不认为这是一个好主意:我可以像这样使用XPath和ant循环,它将改变XPath中的regexp以跳过已经运行的测试。
这里需要做两件在Ant中并不直接的事情:从一些xml中提取一些信息,以及一个循环。
提取一些xml:
- 有你指出的javascript解决方案
- 有一些外部xpath任务可用。我使用andariel,它对我的用例工作得很好。如果你搜索"xpath任务",你可能会找到其他的实现。
- 在loadfile Ant任务和filterchain replaceregex中使用一些regexp。只有当你不害怕regexp并且可以对实际的xml语法(额外的换行,空格…)敏感时才可以使用
要循环,并处理条件(根据我从"ant循环将改变xpath中的regexp以跳过已经运行的测试"中理解的):只有一个体面的解决方案,使用ant-contrib。查找for
, foreach
和if
任务