我刚刚开始学习jBehave和Maven(在Eclipse中)。我已经安装了JBehave Eclipse 1.0.0.20140605-071并将其添加到我的Maven依赖项中 - pom.xml的相关位看起来像(在回复后编辑):
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.wmaop</groupId>
<artifactId>wm-jbehave</artifactId>
<version>1.0.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
这给了我一个错误:
missing artefact org.wmaop:wm-jbehave.jar:1.0.0
如果我尝试构建,我会收到错误:
Failure to find org.wmaop:wm-jbehave:jar:1.0.0 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
“使用Maven创建测试项目”tutorial说“如果项目中存在错误,请打开pom.xml文件以检查是否找不到wm-jbehave依赖项。验证您的Designer是否可以访问到了互联网,以便检索jar依赖项“,但我不知道这意味着什么 - 计算机当然可以访问互联网 - 我在上面打字。
如何解决此错误?
答案 0 :(得分:6)
我甚至不确定WM-AOP的适用范围,除了它在中提到的 我得到的错误信息。
你好像甚至都不知道WM-AOP是什么:)
这个tutorial(来自您的问题)展示了如何与他们的webMethods Designer一起启用和运行JBehave。
换句话说 - 这是一个使用另一个独立项目JBehave的独立产品(集成服务器)
要运行本教程,首先需要download, install and configure webMethods Designer & Integration Server Flow services.,然后创建一个使用此服务器和JBehave在该服务器上运行测试的项目。
但是你不需要这些东西来学习JBehave。 JBehave是一个独立的产品,可以在许多环境中运行,甚至可以在纯Java(JDK)中运行。
只需按照以下步骤
<强> 1。在Eclipse中 - 单击New / Maven项目
<强> 2。在以下对话框中单击“下一步”
第3。在下一页上键入“jbehave-simple-archetype”,选择版本4.1并单击下一步
注意 - 不要使用最新版本4.1.1,因为它不起作用(有一个错误将在1-2周内在即将发布的版本4.1.2中解决
<强> 4。输入项目的group-id和artifact-id,然后单击Finish
这就是全部 - 您的JBehave项目已准备好。
在src/main/resources/org/example/myJbehave/stories/
中,您会发现my.story
有一个示例故事:
Scenario: A scenario with some pending steps
Given I am a pending step
And I am still pending step
When a good soul will implement me
Then I shall be happy
在src/main/java/org/example/myJbehave/steps/
中,您会找到MySteps.java
课程。以这种方式修改它:
import org.jbehave.core.annotations.Alias;
import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;
public class MySteps {
@Given("I am a pending step")
@Alias("I am still pending step")
public void given_i_am_pending_step() {
System.out.println("Tihis is implementation of GIVEN");
}
@When("a good soul will implement me")
public void when_a_good_soul_will_implement_me() {
System.out.println("Tihis is implementation of WHEN");
}
@Then("I shall be happy")
public void then_i_shall_be_happy() {
System.out.println("Tihis is implementation of THEN");
}
}
在/src/main/java/org/example/myJbehave/
中,您会找到MyStories.java
这个类包含配置&amp;引导代码
用鼠标右键单击它,然后选择“Run as / JUnit test”,故事就会被执行
您将在控制台选项卡中看到如下结果:
Processing system properties {}
Using controls EmbedderControls[batch=false,skip=false,generateViewAfterStories=true,ignoreFailureInStories=true,ignoreFailureInView=true,verboseFailures=false,verboseFiltering=false,storyTimeouts=60,threads=2,failOnStoryTimeout=false]
(BeforeStories)
Running story org/example/myJbehave/stories/my.story
Tihis is implementation of GIVEN
Tihis is implementation of GIVEN
Tihis is implementation of WHEN
Tihis is implementation of THEN
(org/example/myJbehave/stories/my.story)
Scenario: A scenario with some pending steps
Given I am a pending step
And I am still pending step
When a good soul will implement me
Then I shall be happy
(AfterStories)
Generating reports view to 'C:\Users\irko\eclipse-workspace1\myJbehave\target\jbehave' using formats '[stats, console, txt, html, xml]' and view properties '{navigator=ftl/jbehave-navigator.ftl, views=ftl/jbehave-views.ftl, reports=ftl/jbehave-reports.ftl, nonDecorated=ftl/jbehave-report-non-decorated.ftl, decorated=ftl/jbehave-report-decorated.ftl, maps=ftl/jbehave-maps.ftl}'
Reports view generated with 2 stories (of which 0 pending) containing 1 scenarios (of which 0 pending)
注意:按照these steps安装JBehave Eclipse插件,其中包含有用的*.story
编辑器。
答案 1 :(得分:4)
据我所知,它不在Maven中央仓库上,所以没有wodner,但它可以在GitHub上使用,所以我们可以使用JitPack
来获取它将此添加到您的POM
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
答案 2 :(得分:3)
尝试使用此回购:https://repo.azure.jenkins.io/public。
或者在本地构建项目:
git clone https://github.com/wmaop/wm-jbehave.git --branch wm-jbehave-1.0.0
cd wm-jbehave
mvn clean install
答案 3 :(得分:1)
根据发布的错误:
&#34;未能找到org.wmaop:https://repo.maven.apache.org/maven2中的wm-jbehave:jar:1.0.0缓存在本地存储库中,在中心的更新间隔过去之前不会重新尝试解析强制更新 - &gt; [帮助1]&#34;
似乎项目需要强制maven更新来解决丢失的人工制品。只需右键单击您的项目 - &gt; Maven - &gt;更新项目。确保&#34;强制更新快照/版本&#34;检查。
答案 4 :(得分:0)
maven依赖项和存储库条目用于编译基于tutorial link in your question的示例maven项目。
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.wmaop</groupId>
<artifactId>wm-jbehave</artifactId>
<version>1.1.1</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.entrust</groupId>
<artifactId>toolkit</artifactId>
</exclusion>
<exclusion>
<groupId>com.softwareag.webmethods</groupId>
<artifactId>wm-isserver</artifactId>
</exclusion>
<exclusion>
<groupId>com.softwareag.webmethods</groupId>
<artifactId>wm-isclient</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<repositories>
<repository>
<id>bintray.io</id>
<url>https://dl.bintray.com/wmaop/maven</url>
</repository>
</repositories>
请注意,本教程还需要额外的设置来运行HelloWorld故事。
使用简单的jbehave maven原型来关注@krokodilko提供的答案可能更容易。