問題タブ [spoon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Spoon-gradle プラグインを介して特定のパッケージからインストルメンテーション テストを実行する
私はRoman Mazurのspoon-gradle-pluginを使用しています。一度にすべてのテストを実行できますが、起動したいテストの「グループ」を指定するのに問題があります。現在、私のスプーンのセットアップは次のようになっています。
私のテストはパッケージにあります:
そして、私の目標は、spoon に依存する個別の gradle タスクを作成して、各パッケージから個別にテストを起動することです。Roman は、スプーン内のいくつかのプロパティを編集できるパラメーターinstrumentationArgsを提供してくれました。
スプーンのメインgitでわかるように、パッケージを指定できると書かれています。ここで、スプーンランナーがテストを探す必要があり、例は次のようになります。
だから私の考えは、このプロパティをinstrumentationArgsに入れることでした。その結果、次のようなスプーン タスクを作成しました。
私が言えることは、 noAnimations パラメータがデフォルトのスプーン設定を適切に拡張しているため、GIF が作成されないということです。したがって、instrumentationArgs は確かに文字列配列を取得していますが、端末では次のように変更を適用しません。
「パッケージ」プロパティで何をするかはわかりませんが、常に結果を受け取ります:
また、変更したいのですが、方法がわかりません。さらに、プロジェクトの「com.myapp.instrumentation.flowtests」文字列を検索しようとしたと言えますが、それが使用される唯一の場所は、パッケージ内のテスト + 上記の gradle タスクです。したがって、どこにもハードコードされていません。次の方法でテストを開始すると、同じ場所が選択されます。
そして、私が使用した後:
また、テスト セット全体を実行します。
android - Android - taskGraph の作成後に生成される gradle タスクへの依存関係を定義する方法
アップデート
実行時にタスクを把握できました。しかし、私は別のタスクを完了することができません。私が使用したコードは次のとおりです。
}
ただし、「spoonFreeDebugAndroidTest」が失敗すると、タスク「ciIntegrationTests」は実行されません。(ただし、println 行は印刷されます。)
元の質問
アプリのフレーバーに応じて、実行時 (タスク グラフの生成時) にビルドされるスプーンタスクがあります。たとえば、タスク「spoonFreeAndroidDebugTest」は実行時に生成され、build.gradle ではアクセスできません。
このタスクに依存関係を追加して、他のタスクが失敗した場合でもこのタスクが実行されるようにします。私はこれらのアプローチを試しました:
これは私にこのエラーを与えます
com.stanfy.spoon.gradle.SpoonExtension_Decorated@147456b6 で、引数 [ciIntegrationTests] のメソッド finalizedBy() が見つかりませんでした。
と
エラーが発生します
プロパティ「spoonDeltaAndroidDebugTest」が見つかりませんでした
と
その結果、
メソッドのシグネチャはありません: java.lang.String.finalizedBy() は引数の型に適用できます: (java.lang.String) 値: [ciIntegrationTests]
実行時に生成されるbuild.gradleのタスクにアクセスする方法はありますか。
android - アプリケーション チューザー - 外部 URL を開いた後に Android Espresso 単体テストが壊れる
ログイン画面を備えた Android アプリを持っています。このアプリには、さらに支援が必要な Web サイトに移動するためのパスワードを忘れたボタンも含まれています。次の簡単なテスト機能を使用して、スプーンとエスプレッソを使用してテストしています。
このテストは問題なくパスし、画面に「ブラウザー/クロム ダイアログを使用してアクションを完了する」が表示されます。これは、このデバイスの正しい動作です。これまでのところすべて順調です。ただし、そのダイアログがそこにある限り、後続のテストはアプリを開くことができず、長い一時停止の後に例外が返され、テストに失敗します。
テストを更新してダイアログをアクティブに削除するにはどうすればよいですか? または、残りの単体テストを続行できるようにするにはどうすればよいですか?
参照用の完全な例外:
android - Android Automation のヒープ サイズを増やす方法
Espresso と UI automator を使用して開発したテスト ケースを実行するためにスプーン ランナーを使用しています。私は約200のテストケースを持っています。ほとんどの場合、メモリ不足の問題により実行がクラッシュします。Android メモリ モニタを確認したところ、使用可能なヒープ領域は 128 MB しかありません。このヒープ領域を増やすことはできますか? または、各テストが完了した直後にヒープ領域をクリアする方法はありますか?
android:largeHeap="true" を設定してみました。自動化のみを有効にすることはできますか?
android-testing - Spoon を使用した Android テスト シャーディング
スプーンとエスプレッソを使用して、Android アプリの UI/機能計測テストを自動化しています。
テストの実行時間を短縮できるように、複数の接続されたデバイスやエミュレーターにインストルメンテーション テストを分散する方法があるかどうかを知りたいです。
例: 1 つのエミュレーターで実行するのに 15 分かかる 300 個のテストがあるとします。エミュレーターをさらに追加し (たとえば 4 つ)、各エミュレーターに 75 個のテストを配布して、テストの実行時間を短縮する方法はありますか?
これに関するあなたの意見に感謝します。
