3

キュウリと統合すると、testng スクリプトを実行できます。http://automatictester.co.uk/2015/06/11/basic-cucumberjvm-selenium-webdriver-test-automation-framework/リンクで定義されている正確な手順に従いました。

ここで、もう 1 つ要件があります。testng.xml の parameters タグから値を読み取る方法を教えてください。以下の例を参照してください。

<test name="ascentis.LoginDemo.Firefox">
    <parameter name="BrowserName" value="Firefox" />
    <parameter name="Environment" value="local" />  
    <packages>
        <package name="runnerFiles.*"/>
    </packages>
</test>

parameters タグから BrowserName と Environment の値を読み取る必要があります。キュウリの @Before メソッドに @parameters を使用しようとしましたが、うまくいきませんでした。@Before フックは、あまりにもタイプのシナリオの 1 つのパラメーターのみを受け入れるという例外がありました。パラメータタグから値を読み込んでキュウリのstepDefinitionsにアクセスする方法を教えてください。

4

1 に答える 1

6

まあ、testng.xmlレベルでの CucumberJVM テストのパラメーター化が本当に探しているものかどうかはわかりません。ただし、CucumberJVM フレームワークのファイルからパラメーターを読み取る必要がある場合は、次testng.xmlの (汚い) ソリューションを使用できます。

  • DownloadFeatureRunnerの代わりに CustomRunnerを拡張するAbstractTestNGCucumberTests
  • Youttestng.xmlファイルにパラメータを含めます。<parameter name="someParam" value="someValue"/>
  • また、新しい親クラスを実装します。

    public class CustomRunner implements IHookable {
        public CustomRunner() {
        }
    
        @Parameters("someParam")
        @Test(
                groups = {"cucumber"},
                description = "Runs Cucumber Features"
        )
        public void run_cukes(String someParam) throws IOException {
    
            System.out.println(someParam);
            (new TestNGCucumberRunner(this.getClass())).runCukes();
        }
    
        public void run(IHookCallBack iHookCallBack, ITestResult iTestResult) {
            iHookCallBack.runTestMethod(iTestResult);
        }
    
    }
    

ご覧のとおり、パラメーターの値にアクセスできます。それをどうするかは、あなた次第です。

于 2015-08-11T19:29:15.540 に答える