Selenium 経由で Liferay 6.0.6 のポートレットをテストしようとしています。liferay mvc ポートレットと vaadin ポートレットはほとんどありません。最初のアプローチでは、以下の手順を実行するテストを作成します。
- 基本構造とポートレットの配置を使用してデータベース ダンプを復元する
- 「data」フォルダを削除し、そこに初期データをコピー
- 「webapps」フォルダからポートレットの適切なフォルダを削除します
- ポートレット (*.war) を「デプロイ」フォルダーにコピーします
- ライフレイを開始
- ポートレットがインストールされるまで待ちます
- [コントロール パネル] -> [サーバー管理] に移動し、[この VM によってキャッシュされたコンテンツをクリアする]、[データベース キャッシュをクリアする]、[すべての検索インデックスを再インデックス化する] をクリックします。
Selenium テストを開始した後 (ポートレットの動作のテスト、vaadin ポートレットを介したファイルのアップロード、vaadin ポートレットを介したワークフロー (kaleo) タスクの承認など)。そして、テストはさまざまな場所で失敗しました:
- ポートレット経由でファイルをアップロードしているときに DuplicateFileException が発生することがあります (ただし、ドキュメント マネージャーにはファイルがありません)。
- Selenium がページ上の要素を見つけられない場合がある
- kaleo ワークフローがエラーなしですべてのファイルを承認できない場合がある
VM 上の Jenkins ノードでテストを開始すると、より不安定な動作が発生します。
ポートレットをどのようにテストしますか? テストの動作を安定させる方法はありますか? ベストプラクティスとは何ですか?