3

我目前正在通过命令运行我的测试

gradle 应用程序:connectedCheck

这很好用,但是随着我的测试的建立,当我尝试创建一个时,我不想经历所有这些。有谁知道如何只运行我的一项测试?提前致谢。

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. 最后,每个测试都将运行,将结果保存到项目的正常位置。(在 build/spoon 内部)一旦测试完成,它会将结果复制到结果文件夹,并适当地命名每个测试结果,以便轻松查看所有测试的运行情况。

注意:此脚本是为 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. 同样,这是为终端编写的。您可能需要根据您的操作系统进行修改。但是结构应该是一样的

我希望这有帮助。

于 2014-07-22T15:05:17.303 回答
2

很确定connectedCheck只运行所有测试。

您可能想看看Spoon,它可以让您指定要执行的类和方法。

这里有一个将 Spoon 与 Gradle 集成的插件。

于 2014-01-04T10:59:41.163 回答
1

您可以通过以下步骤仅测试 Espresso 测试的特定方法:1)打开 Espresso 测试类(使用 Android Studio)2)转到结构窗口(位于 Android Studio 左侧)3)选择特定测试您要运行的方法 4) 右键单击​​,然后选择“运行...”

我希望这有帮助。

于 2016-02-29T14:30:24.230 回答