2

我有一个带有测试插件的功能。我使用 ant+jococo 从每个插件运行测试套件。测试套件的名称与“测试”相同。现在使用硬编码的插件名称,例如 <run-test-macro test='plugin.name.Test'/>(目标中的硬编码值)。

我如何在不使用硬编码插件名称的情况下做到这一点,我想从 ANT 中的功能 XML 和 foreach 插件调用我的宏中获取这些插件名称。

我找到了方法,但我认为这不是一个好主意:我可以使用这样的 XPath ant 循环,它将更改 xpath 中的正则表达式以跳过已经运行的测试。

4

1 回答 1

1

您需要在这里做两件在 Ant 中不直接的事情:从一些 xml 中提取一些信息,以及一个循环。

要提取一些 xml:

  • 有你指出的javascript解决方案
  • 有一些外部 xpath 任务可用。我使用了 andariel,它适用于我的用例。如果您搜索“xpath ant task”,您可能会找到其他实现。
  • 对loadfile Ant 任务和 filterchain replaceregex使用一些正则表达式。仅在您不害怕 regexp 并且可以对实际的 xml 语法敏感时使用(附加换行符、空格...)

循环并处理条件(根据我从'ant loop which will change regexp in xpath to skip already runed tests'中了解到的):只有一个像样的解决方案,使用ant-contrib。查找forforeach任务if

于 2013-06-15T12:11:52.010 回答