3

現在、コマンドを使用してテストを実行しています

Gradle アプリ:connectedCheck

これはうまく機能しますが、テストが構築されているため、作成しようとしているときにそれらすべてを実行したくありません。私のテストの1つだけを実行する方法を知っている人はいますか? 前もって感謝します。

4

3 に答える 3

4

これは、MariusVolkhart の助けを借りて行った詳細なソリューションです。

これをあなたに追加してくださいbuild.gradle

spoon {
     if (project.hasProperty('spoonClassName')){
         className = project.spoonClassName
      }
}

これで、次のようなコマンドで特定のクラスを実行できます。

グラドル スプーン -PspoonClassName=< com.your.pakage.ClassName>


それでおしまい!

ただし、一連の特定のテストを実行する場合は、Android プロジェクトのルートにファイルを作成します: runAllTests.sh. このスクリプトには、実行するテスト コマンドが含まれます。

次のように編集.shします。

 #!/bin/sh
 date +%b-%dT%H.%M > timestamp.out

 sites="$HOME"/path/to/project/root

 timestamp="$(cat "$sites"/timestamp.out)"
 result_folder="$sites"/results
 destdir="$result_folder/Results-$timestamp"

 mkdir -p "$destdir"
 echo "Directory created: ${destdir##*/}"

 <---------- Here you start running the test --------------->

 echo "Starting Master Setup"
 gradle spoon -PspoonClassName=com.espresso.test.MasterSetup
 cp -r "$sites"/app/build/spoon "$destdir"/MasterSetup
 echo "Results saved to MasterSetup"

 echo "Starting WorkoutSchedule"
 gradle spoon -PspoonClassName=com.espresso.test.WorkoutSchedule
 cp -f "$sites"/app/build/spoon "$destdir"/WorkoutSchedule
 echo "Results saved to WorkoutSchedule"

 echo "Starting Setting.test"
 gradle spoon -PspoonClassName=com.espresso.test.Settings
 cp -r "$sites"/app/build/spoon "$destdir"/Settings
 echo "Results saved to Settings"

次に、スクリプトにパーミッション 1.cdを付与します。スクリプト 2. タイプchmod u+x runAllTest.sh

あなたは設定されています。cdルートに移動してから、テストを実行するには、次のように入力します. runAllTest.sh

それで、これは何をしますか:

  1. まず、timestamp.out を作成します。これを使用して、以前の結果が上書きされることなく、結果を何度もファイルに保存できるようにしています。この部分は必要ありません。
  2. 次に、resultプロジェクトのルートにフォルダーが作成されていない場合は作成されます。
  3. 次に、という名前の結果フォルダー内にフォルダーを作成しますResults-SOME-DATE
  4. 最後に、各テストが実行され、結果がプロジェクトの通常の場所に保存されます。(ビルド/スプーン内) テストが完了すると、結果が結果フォルダーにコピーされ、実行されたすべてのテストを簡単に確認できるように、各テスト結果に適切な名前が付けられます。

注:このスクリプトは MAC 用に作成されました。Windows またはその他の場合、このスクリプトを変更する必要がある場合があります。


さらに、各フォルダーを開いて開くのは不便index.htmlです。だから私はあなたに追加するためにこのスクリプトを書きましたbash_profile

function open-results () {
  # the browser to open up `index.html' in.
  browser='/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'

  # let the user know what directory we're looking in
  printf "looking in %s" "$(pwd)"
  echo ...

  for paths in $(find ./ -name 'debug' -type d); do
    for files in $(find "$paths" -name 'index.html'); do
     open -a "$browser" "$files"
    done
  done
  echo done
 } 

ここでcd、ターミナルで に移動しResults-SOME-DATE、 と入力しopen-resultsます。繰り返しますが、これは端末用に書かれています。OSによっては変更が必要な場合があります。でも構造は同じはず

これが役立つことを願っています。

于 2014-07-22T15:05:17.303 に答える
2

かなり確実connectedCheckにすべてのテストのみを実行します。

実行するクラスとメソッドを指定できるSpoonを見てみるとよいでしょう。

Spoon と Gradle を統合するプラグインがここにあります

于 2014-01-04T10:59:41.163 に答える
1

次の手順で、Espresso テストの特定のメソッドのみをテストできます。1) Espresso テスト クラスを開きます (Android Studio を使用) 2) [Structure] ウィンドウに移動します (Android Studio の左側にあります) 3) 特定のテストを選択します実行したいメソッド 4) 右クリックして [実行...] を選択します。

これが役立つことを願っています。

于 2016-02-29T14:30:24.230 に答える