2016-01-13 4 views
7

私はCucumber/Mavenに少し慣れているので、テストケースを実行する際に助けが必要です。 私はCucumberとSeleniumを使ってeclipseでオートメーションスイートを開発しました。特定の機能ファイル/ Junitランナークラスを実行するには、Eclipse内のファイルを右クリックして実行します。Mavenを使用してコマンドプロンプトとジーンキンを通してシングルキュウリの機能ファイルを実行するにはどうすればよいですか?

しかし、どのように、私は50個の機能ファイルやJUnitのクラスが言うのうち、2-3機能ファイル(または)2-3 JUnitのランナークラスを実行するために特定のコマンドを与えることによって、コマンド・プロンプトまたはジェンキンスを通してそれを実行していますか?

以下はEclipseでどのように構造化されているかのパッケージエクスプローラです。

enter image description here

は以下のpom.xmlある

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.perspecsys</groupId> 
    <artifactId>salesforce</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>salesforce</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 


    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.11</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-java</artifactId> 
      <version>1.1.2</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-picocontainer</artifactId> 
      <version>1.1.2</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-junit</artifactId> 
      <version>1.1.2</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-java</artifactId> 
      <version>2.48.2</version> 
     </dependency> 

    </dependencies> 
</project> 

答えて

8

あなたは@CucumberOptions注釈を持っているすべてのオプションをオーバーライドしますcucumber.optionsを使用して、単一の機能ファイルを実行することができます

mvn test -Dcucumber.options="src/test/features/com/perspecsys/salesforce/featurefiles/Account.feature" 
+0

感謝を。このコマンドはコマンドプロンプトで機能しました。しかし、私はJenkinsでどのように設定するのですか?すべての機能ファイルがその下で実行されるように、パッケージcom.perspecsys.salesforce.featurefilesのみを実行します。 Jenkinsのステップバイステップ設定で私を助けてくれますか? – Ronnie

2

あなたがMavenを使用していて、既に機能ごとに別々のランナークラスがあることを考えれば、FailsafeプラグインまたはSurefireこのようなコマンドラインからパラメータを渡し、実行するランナーを選択するプラグイン。

フェイルセーフバージョン:

-Dit.test=Account*Test,Login*Test 

シュアバージョン:あなたは、ワイルドカードを使用するテストのカンマ区切りのリストを渡し、パッケージによって完全な場所とフィルタを参照することができ

-Dtest=Account*Test,Login*Test 

注意。キュウリは、より多くの統合テスト(実際には、エンドツーエンドテスト)のようにテストし、確実なプラグインがあるのに対し、それは、そのプラグインが何のためにあるのかであるように私は通常、フェイルセーフのプラグインを使用することになり、このために

-Dit.test=com.perpecsys.salesforce.*Test 

ユニットテストを実行するように設計されています。両方のプラグインで

詳細情報:

http://maven.apache.org/surefire/maven-failsafe-plugin/examples/single-test.html

http://maven.apache.org/surefire/maven-surefire-plugin/examples/single-test.html

ジェンキンスからそれはちょうど新しいのMavenプロジェクトを作成するためのMavenプロジェクトのプラグインを使用してビルドセクションでは、まったく同じです、 目標とオプションフィールドは、次のようなmavenコマンドを指定します。

clean verify -Dit.test=Account*Test 

https://wiki.jenkins-ci.org/display/JENKINS/Maven+Project+Plugin

また、ちょうどあなたがMavenのプロジェクトプラグインを使用して、そしてそこにオプションを追加されていない場合を呼び出し、トップレベルの達人は、ビルドにステップをターゲットに追加します。

これが役に立ちます。

2

あなたはそれがハードコーディングされたい場合は、あなたが何かのように行うことができます:助けを

import cucumber.api.CucumberOptions; 
import cucumber.api.junit.Cucumber; 
import org.junit.runner.RunWith; 

@RunWith(Cucumber.class) 
@CucumberOptions(
     features={"src/test/resources/features/belly.feature"} 
     ,glue = "steps" //whatever the name of your steps package is 
     ) 
public class RunCukesTest 
{ 
} 
関連する問題