2017-09-08 15 views
12

jBehaveとMaven(Eclipse内)を学び始めています。私はJBehaveのEclipse 1.0.0.20140605-071をインストールし、私のMavenの依存関係にそれを追加しました - のpom.xmlの該当ビットがどのように見える(返信後に編集):MavenはjBehaveを見ることができません

:私にエラーを与える

<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-jbeh aveの依存関係は見つかりません。 jarの依存関係を取得するためにあなたのデザイナーがインターネットにアクセスできることを確認してください」という意味が分かりません。コンピュータは確かにインターネットにアクセスしています - これを入力しています -

は、どのように私はこのエラーを解決するのですか?私の知る限り、それはそうMavenの中央リポジトリには何のwodnerないではありませんが、それはそうにこれを追加JitPack

を使用してTHERからそれをフェッチすることができますGitHubの上で利用可能である見ることができるように

+0

Eclipseで[JBehave](http://jbehave.org/)を学ぶだけでいいですか?または、JBehaveのストーリーを実行するために[webMethods Integration Suite WM-AOPのテストツール](https://github.com/wmaop)を使用する必要がありますか? WM-AOPフレームワークの追加の複雑さなしに、JBehaveだけで学習する方がいいでしょうか? JBehaveはWM_AOMを必要とせず、単にコマンドラインからフレームワークがなくても、多くのフレームワーク上で実行できます。 – krokodilko

+0

私はCucumberとRubyを使ってBDDに慣れています。基本的に、私はJavaに似た環境を望んでいますし、JBehaveが最も有望な候補です(そしてEclipseは私の好みのIDEです)。私の問題は、インストールの手順がうまくいかないことです.WA-AOPがどこに適合しているかはわかりませんが、エラーメッセージに記載されている点を除きます。 – digitig

答えて

4

をあなたのPOM

<repositories> 
    <repository> 
     <id>jitpack.io</id> 
     <url>https://jitpack.io</url> 
    </repository> 
</repositories> 
+0

これを追加するだけではなく、プロジェクトを追加したりビルドしたりしてもプロジェクトを更新することはありません。フェッチを強制するために必要なことはありますか? – digitig

+0

あなたはそれを自分で構築する必要があるように見えます。 https://github.com/wmaop/wm-jbehave/releases。親pomも含めてください。 – Antoniossss

+0

親pomを含めるにはどうすればいいですか?これはMavenを使用した最初の日です... – digitig

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 
+0

そのレポを追加することで違いはありません。 ローカルのビルド手順に従って、よく知られているエラーが表示されました。 [エラー]プロジェクトorg.wmaop:wm-jbehave:1.0.0(C:\ Users \ digit \ Desktop \ jbehave \ wm-jbehave \ pom.xml) 1エラーがあります [エラー] org.wmaopの解決できない親POM:wm-jbehave:1.0.0:https://repo.mavenでorg.wmaop:wm-parent:pom:1.0.5を見つけることができません。 apache.org/maven2がローカルリポジトリにキャッシュされていた場合、centralの更新間隔が経過するか更新が強制され、 'parent.relativePath'が間違ったローカルPOM @ 8行目のカラム10を指すまで解決は再試行されません – digitig

+0

vm jbehavenの1.0.0バージョンにとどまるか、別のバージョンを試してみてください。もしそうなら、別のバージョンを試してみてください:1.1.0は見つけやすいでしょう。 – sab

6

I'm not even sure where WM-AOP fits in, except that it's mentioned in the error message I get.

あなたも、WM-AOPは:)
このtutorial(あなたの質問から)何であるかを知らないようだが有効にする方法を示しており、 JBehaveをwebMethods Designerと一緒に実行してください。
他のスタンドアロンプ​​ロジェクトを使用するスタンドアロン製品(統合サーバー)JBehave
このチュートリアルを実行するには、最初にdownload, install and configure webMethods Designer & Integration Server Flow services.が必要です。このサーバーとJBehaveを使用してテストを実行するプロジェクトを作成しますこのサーバー上で


しかし、このようなことはJBehaveを学ぶためには必要ありません。 JBehaveはスタンドアロン製品であり、純粋なJava(JDK)であっても多くの環境で実行できます。

ちょうどEclipseで


1.以下の手順に従ってください - [新規]をクリックします/ Mavenプロジェクト enter image description here


2。んではない - "jbehave-単純原型" の次のページタイプで

enter image description here


3.次に、以下のダイアログをクリックして、バージョン4.1を選択し、次の
注をクリックオンそれが動作しないため enter image description here


-2週間で、今後のバージョン4.1.2で解決されるバグがある(最新バージョン4.1.1を使用します0

4.グループIDとプロジェクトの案件IDを入力して、すべてです完了 enter image description here


をクリックしてください - あなたのJBehaveプロジェクトの準備ができています。 src/main/resources/org/example/myJbehave/stories/


あなたは例の話でmy.storyがあります:あなたはMySteps.javaクラスを見つけるでしょうsrc/main/java/org/example/myJbehave/steps/

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/

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"); 
    } 
} 

をあなたはMyStories.java
があります。このクラスは、構成&ブートストラップコード
が含まれていることは右「/ JUnitテストとして実行」を選択し、その後、マウスを使用して、それをクリック、そして物語はenter image description here

enter image description here

を実行されます

コンソール]タブでは、このような結果が表示されます。

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) 

注:便利に*.storyエディタが含まれているJBehaveのEclipseプラグインをインストールするthese stepsに従ってください。エラーを1として

+0

いいえ、手順3で失敗します。このページにはアーキタイプは表示されません.jbehave-simple-archetypeと入力すると、Javaヒープ領域のメモリー不足エラーでEclipseがクラッシュします。私はEclipseを-vmargs -Xmx1000Mで起動しようとしましたが、同じエラーが表示されます。 – digitig

+0

さらに、https://howtodoinjava.com/tools/eclipse/how-to-import-maven-remote-archetype-catalogs-in-eclipse/の指示に従って、アーキタイプのローカルコピーを入手してください。エラーが「Eclipseのjbehave-maven-plugin:4.1:unpack-view-resourcesを処理するための市場項目が見つかりません」というメッセージが表示されます。 関連するヘルプが見つかりません。 – digitig

1

は掲載:org.wmaop見つける

「失敗:WM-jbehave:瓶:https://repo.maven.apache.org/maven2で1.0.0がローカルリポジトリにキャッシュされた、解像度がの更新間隔まで再試行されることはありませんが[ヘルプ1] "

欠けているアーティファクトを解決するには、プロジェクトを強制的に更新する必要があります。単にあなたのプロジェクト(Maven)→プロジェクトの更新(Update Project)を右クリックしてください。 「スナップショット/リリースの強制的な更新」がオンになっていることを確認します。

0

以下は、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ストーリーを実行するための追加設定も必要であることに注意してください。

@krokodilkoが提供する答えは、単純なjbehave maven archetypeを使用する方が簡単な場合があります。

関連する問題