3

我必须将 jbehave 与 jenkins 集成。但我不知道如何做到这一点。我看到我必须在 Jenkins 中创建一个任务,但我不知道我应该在哪里连接 jbehave 这个任务。

有人可以帮助我吗?

谢谢,

萨朗

4

3 回答 3

5

所以我假设您已将 JBehave 与 Maven 集成,对吗?简单的构建环境可以设置如下:

  1. 转到 Jenkins 并添加一个类型为“构建 maven2/3 项目”的新工作
  2. 配置您的项目以从您使用的任何源存储库中签出您的项目。
  3. 配置项目的构建阶段以运行您需要的任何 Maven 目标(“安装”可能会起作用)
  4. 点击保存,您就有了一个工作项目,该项目将完全按照命令行执行。

如果您想看到 JBehave 测试输出在 Jenkins 中呈现得很好,您还应该按照以下说明配置 Jenkins/XUnit 插件:http: //jbehave.org/reference/stable/hudson-plugin.html

您还需要确保您的项目配置为使用 StoryReporterBuilder 中的 XML 输出格式以使用插件(上述说明中未提及)。

于 2012-10-02T04:22:24.193 回答
1

您可以访问以下网站了解详情:

http://jbehave.org/reference/stable/hudson-plugin.html

于 2012-12-18T10:41:23.287 回答
0

根据您的评论,您希望在使用 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(","));
    }
}
于 2013-06-06T05:46:20.373 回答