我必须将jbehave与jenkins整合在一起。但我不知道如何做到这一点。我看到我必须在詹金斯创造一项任务,但我不知道我应该在哪里布置这项任务。jbehave与jenkins的整合
有人可以帮我吗?
感谢,
萨朗
我必须将jbehave与jenkins整合在一起。但我不知道如何做到这一点。我看到我必须在詹金斯创造一项任务,但我不知道我应该在哪里布置这项任务。jbehave与jenkins的整合
有人可以帮我吗?
感谢,
萨朗
所以我假设你有JBehave与Maven集成,正确吗? 简单的构建环境,可设置如下:
如果你想看到詹金斯很好地呈现JBehave测试输出你也应该遵循这些步骤来配置詹金斯/的xUnit插件:http://jbehave.org/reference/stable/hudson-plugin.html
您还需要确保您的项目配置为在StoryReporterBuilder中使用XML输出格式来使用插件(在上面的说明中没有提到)。
我有Jbehave与Maven集成,我有三个执行标签,其插件的artifactId是
这些说明是完美的,虽然通常它是一个标准,在您的答案中包含相关的要点。谢谢。 – djangofan 2013-07-22 16:27:49
根据您的意见,要指定故事使用Maven插件时通过詹金斯运行。以下是一种方法:
创建一个StoryFinder的子类,并将其设置为您的Maven configuration中的storyFinderClass
属性。在Jenkins命令行启动器中,您可以将故事作为-D
系统属性传递,然后可以从StoryFinder中读取。
命令行
mvn ... -Dcom.sarang.stories="foo.story,bar.story"
Maven的
<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>
StoryFinder
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(","));
}
}
你如何从命令行运行JBehave?只需要将它作为“Execute shell”或批处理命令添加到Jenkins作业中即可。 – 2012-08-15 15:55:32
不。我有一个POM文件,我认为我必须在那里放置一些东西来实现自动化测试用例的运行。你怎么看? – 2012-08-15 20:08:33
找出如何从命令行(例如mvn编译测试)运行POM并使用“执行shell”步骤(在Freestyle作业类型中),或者创建Maven作业类型并添加“编译测试”作为目标。 – 2012-08-16 09:12:23