web-dev-qa-db-ja.com

自動テスト:Seleniumはどこに置くのですか?

Java=アプリケーションです。これは2つのチケット発行Webアプリケーション間のミドルウェアです。Seleniumを使用してend2endテストを記述し、機能をテストします。

テストプロセスが次のようになっているとします。Jenkinsジョブを手動で開始し、Mavenを使用してアプリをコンパイルし、ユニットテストを起動します。ユニットテストに合格すると、アプリをテストサーバーにデプロイします。私はこの時点から、最初のチケット発行Webアプリケーションの入力、いくつかのフォームへの入力、そして私の最初のアプリケーションの手動テストに基づく2番目のWebアプリケーションでの予想される動作の確認と検証からなる各機能を手動でテストしていました。

ここで、Selenium-Webdriverにフォームの入力とチェックを行わせたい(Selenium-RCまたはSelenium-IDEを使用せずに、Java Webdriverを使用したコード)を実際に記述します)

しかし、それはどこに行くべきでしょうか?

  • JUnitテストにend2endテストを配置するチュートリアルを見てきましたが、最初に、それらを単体テストに配置するのは実際には意味がありません。次に、テストするためにアプリをデプロイする必要があります。 end2endテストを開始するためにすべて(または一部)の単体テストを開始することは理にかなっていますか?
  • 他のチュートリアルでは、テストをint main void()関数に入れてIDEで実行しますが、これはWebDriverの簡単なデモンストレーションにすぎないと思います。
  • 私は別のMavenプロジェクトを作成し、そこに(Selenium)テストをすべて配置し、Jenkinsがデプロイされた後でなんとかしてそれを開始する必要があるかどうか考えていました。

それを行う方法について何らかの推奨事項はありますか?コード内のCIチェーンandのSeleniumはどこにあるべきですか?

私はそれをグーグルしようとしました、しかし私はセレンの設定と使用方法についてのチュートリアルしか見つけませんでした。

3
Asoub

私が通常行うことは、すべてのテストをtestディレクトリの下に置くことです。 2つのモジュールintegration-testsunit-testsを作成して、それらを分離します。

プロジェクト構造の例:

MyAwesomeProject
    ├───main
    │   └───Java
    └───test
        └───Java
            ├───integration-tests
            └───unit-tests

標準規約では、単体テストには*Test.Javaを使用し、統合テストには*IT.Javaを使用します。

その後、Mavenの Surefire プラグインを使用して単体テストを実行し、 Failsafe プラグインを使用して統合テストを実行できます。

4
DobromirM