我必须将 jbehave 与 jenkins 集成。但我不知道如何做到这一点。我看到我必须在 Jenkins 中创建一个任务,但我不知道我应该在哪里连接 jbehave 这个任务。
有人可以帮助我吗?
谢谢,
萨朗
我必须将 jbehave 与 jenkins 集成。但我不知道如何做到这一点。我看到我必须在 Jenkins 中创建一个任务,但我不知道我应该在哪里连接 jbehave 这个任务。
有人可以帮助我吗?
谢谢,
萨朗
所以我假设您已将 JBehave 与 Maven 集成,对吗?简单的构建环境可以设置如下:
如果您想看到 JBehave 测试输出在 Jenkins 中呈现得很好,您还应该按照以下说明配置 Jenkins/XUnit 插件:http: //jbehave.org/reference/stable/hudson-plugin.html
您还需要确保您的项目配置为使用 StoryReporterBuilder 中的 XML 输出格式以使用插件(上述说明中未提及)。
您可以访问以下网站了解详情:
根据您的评论,您希望在使用 Maven 插件时指定要通过 Jenkins 运行的故事。这是一种方法:
创建StoryFinder的子类并将其设置为Maven 配置storyFinderClass
中的属性。在 Jenkins 命令行启动器中,您可以将故事作为-D
系统属性传入,然后可以从 StoryFinder 中读取该属性。
命令行
mvn ... -Dcom.sarang.stories="foo.story,bar.story"
马文
<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>
...
<systemProperties>
<property>
<name>com.sarang.stories</name>
<value>${com.sarang.stories}</value>
</property>
</systemProperties>
<storyFinderClass>com.sarang.MyStoryFinder</storyFinderClass>
</configuration>
<goals>
<goal>run-stories-as-embeddables</goal>
...
</goals>
</execution>
</executions>
</plugin>
故事查找器
package com.sarang;
import org.jbehave.core.io.StoryFinder;
import java.util.*;
public class MyStoryFinder extends StoryFinder {
@Override
protected List<String> scan(String basedir, List<String> includes,
List<String> excludes) {
//List<String> defaultStories = super.scan(basedir, includes, excludes);
String myStories = System.getProperty("com.sarang.stories");
return Arrays.asList(myStories.split(","));
}
}