我最近开始考虑使用Appium进行一些功能测试。我想通过gradle通过Android studio运行Appium测试。
有没有人试图这样做,如果有,你可以给我一些关于设置的信息,比如使用什么gradle任务等。
我在构建文件中包含了必要的依赖项:
androidTestCompile( 'io.appium:Java的客户机:2.0.0')
我下面有一个示例测试,我只需要通过gradle运行它的方法:)
package com.appium.trial;
import junit.framework.Assert;
import io.appium.java_client.AppiumDriver;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
public class TrialTest {
private static WebDriver wd;
@Before
public void setUp() {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("appium-version", "1.0");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("platformVersion", "4.4");
capabilities.setCapability("deviceName", "Samsung Galaxy S4 - 4.2.2 - API 17 - 1080x1920");
capabilities.setCapability("app", "/Users/chuckster/Documents/Dev/AppiumTrial/appium-trial.apk");
capabilities.setCapability("appPackage", "com.appium.trial");
capabilities.setCapability("appActivity", "com.appium.trial.TrialTest");
try {
wd = new AppiumDriver(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);
} catch (MalformedURLException e) {
e.printStackTrace();
}
wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}
@Test
public static void testThatClickingTheMotorSectionLeadsToSubSection(){
wd.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[2]/android.widget.RelativeLayout[1]/android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.ScrollView[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[5]/android.widget.TextView[1]")).click();
wd.close();
}
@After
public void tearDown() {
if (wd != null) {
wd.quit();
}
}
}
答案 0 :(得分:1)
在命令行中运行它应该查看项目中所有类的一个名为TrialTest的类,并仅运行那些测试
gradle -Dtest.single=TrialTest
你必须有一个名为test的gradle任务。确保在build.gradle文件中有这个
test {
testLogging{
events 'started', 'passed'
}
}
答案 1 :(得分:0)
我是通过gradle使用Eclipse完成的。这是一步一步的描述:
如果你想创建一个包含所有jar的清单文件而不是在类路径中逐一提及,你可以使用这个在一个地方提及所有:
jar { manifest.attributes( 'Class-Path':configurations.runtime.files.collect {it.name} .join('') ) }
多数民众赞成。你很高兴。
答案 2 :(得分:0)
我知道这是一个非常古老的问题。但是here是使用Appium的Android功能测试框架的示例工作模板,它使用Java并配置为使用Gradle运行测试。
答案 3 :(得分:0)
似乎仍然没有接受这个答案。使用gradle运行测试与使用maven运行测试类似且干净。在build.gradle
中,您可以指定
sourceSets {
...
test {
java {
srcDirs = ["test/model"]
// this specifies directories irrespective of default test directory, could be com/appium/trial in your case
}
}
}
然后执行cmd / shell:
./gradlew test /* executes @Test as defined under the sourceSets*/
PS:@BenJi在下面的答案中提出的建议也是定义执行任何使用gradle的自定义任务的好方法。