在我的selenium网格设置中,我必须最初执行2个模块,这将创建数据。然后,休息6个模块。 我在build.xml中有8个不同模块的8个目标。我必须让所有6个目标等待最初的2个目标完成。 1.如何让ant目标等待其余两个目标完成执行? 2.如果我将build.xml拆分为2个build.xmls,哪个命令使2个构建文件按顺序运行?
答案 0 :(得分:4)
如果我正确理解你的问题,你想要并行执行最初的两个模块,然后并行执行剩下的六个模块。有点像:
Time
| InitialModule1 InitialModule2
| | |
| . |
| |
| .
| Module3 Module4 Module5 Module6 Module7 Module8
| | | | | | |
| v v v v v v
V
如果每个模块都由其自己的Ant任务运行:task_one, task_two ... task_eight
,则可以使用Ant目标依赖项和parallel
task来执行此操作。目标依赖项指定执行顺序,如:
<target name="create_data">
<parallel>
<task_one ... />
<task_two ... />
</parallel>
</target>
<target name="do_work" depends="create_data">
<parallel>
<task_three ... />
.
.
.
<task_eight ... />
</parallel>
</target>
如果每个Selenium网格模块都由一系列任务运行,而不是单个任务,您可以将它们包装在sequential
任务中。如果将它们作为单独的目标实现,则可以在antcall
任务中使用parallel
。
答案 1 :(得分:1)
使用antcall ...
<project name="projectName" default="initialtarget1">
<target name="initialtarget1">
<....>
</....>
<antcall target="initialtarget2"/>
<antcall target="target1"/>
<antcall target="target2"/>
<antcall target="target3"/>
<antcall target="target4"/>
</target>
<target name="initialtarget2">
</target>
<target name="target1">
</target>
<target name="target2">
</target>
<target name="target3">
</target>
<target name="target4">
</target>
</project>