我用jBehave和WebDriver创建了一些测试.
当我通过Maven执行它们时,执行是secuencially:
测试1
测试2
...
我有兴趣同时执行测试.根据文件,这是可能的.
http://jbehave.org/reference/stable/multi-threading.html
我已经尝试将符号添加到"Stories"类,并且还使用threads = 5执行了mvn命令,但是不起作用.
@UsingEmbedder(threads=5)
public class EtsyDotComStories extends JUnitStories {
...
@Override
protected List<String> storyPaths() {
return new StoryFinder().findPaths(codeLocationFromClass(this.getClass()).getFile(), asList("**/*.story"), null);
}
}
mvn clean install -s settings.xml -Pjava-spring,codehaus,threads=5
Run Code Online (Sandbox Code Playgroud)
是否可以同时执行多个测试?
编辑:
添加了maven执行部分:
<plugins>
<plugin>
<groupId>org.jbehave</groupId>
<artifactId>jbehave-maven-plugin</artifactId>
<version>${jbehave.core.version}</version>
<executions>
<execution>
<id>embeddable-stories</id>
<phase>integration-test</phase>
<configuration>
<includes>
<include>**/*Stories.java</include>
</includes>
<ignoreFailureInStories>true</ignoreFailureInStories>
<ignoreFailureInView>false</ignoreFailureInView>
<threads>5</threads>
<executorsClass>org.jbehave.core.embedder.executors.SameThreadExecutors</executorsClass>
</configuration>
<goals>
<goal>run-stories-as-embeddables</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>11.0.1</version>
</dependency>
</dependencies>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)
您的问题可能包含更多细节,但我假设您正在使用 run-stories-as-embeddables 目标。你基本上有两个选择:
使用 run-stories-as-embeddables 目标时,将属性“threads”设置为目标。扩展Maven Gaols 文档中的示例:
<plugin>
<groupId>org.jbehave</groupId>
<artifactId>jbehave-maven-plugin</artifactId>
<version>[version]</version>
<executions>
<execution>
<id>run-stories-as-embeddables</id>
<phase>integration-test</phase>
<configuration>
<includes>
<include>**/*Stories.java</include>
</includes>
<ignoreFailureInStories>true</ignoreFailureInStories>
<ignoreFailureInView>false</ignoreFailureInView>
<treads>5</threads>
</configuration>
<goals>
<goal>run-stories-as-embeddables</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)使用 run-stories-with-annotated-embedder maven 目标,它应该尊重注释
此外,您上面描述的两个场景必须位于两个单独的故事中。多线程仅发生在故事级别。同一故事内的场景不是多线程执行的。
| 归档时间: |
|
| 查看次数: |
6613 次 |
| 最近记录: |