2016-11-10 90 views
1

如何在Android模拟器上运行测试,而无需每次运行测试时加载模拟器?如何在没有每次加载模拟器的情况下在android模拟器上运行测试?

我的代码:

void prepareAndroidEmulator() throws MalformedURLException { 
     File appDir = new File("/Users/oleh/Google Drive/QA DRIVE/Applications/some/sprint 2"); 
     File app = new File(appDir, BUILD_NAME); 

     DesiredCapabilities capabilities = new DesiredCapabilities(); 
     capabilities.setCapability("avd", "LG_G4._API_22._Android_5.1"); 

     capabilities.setCapability("deviceName", "AndroidTestDevice"); 
     capabilities.setCapability("platformName", "Android"); 

     capabilities.setCapability("app", app.getAbsolutePath()); 
     driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 
    } 
     @BeforeClass 
    public void setUp() throws Exception { 
     prepareAndroidEmulator(); 

    } 

    @AfterClass 
    public void tearDown() throws Exception { 
     driver.quit(); 
     Runtime.getRuntime().exec("adb -s emulator-5554 emu kill"); 
    } 

我杀模拟器特别,因为如果我不这样做,下一次我有一个错误或IDE是跳过测试。

Screen about skipped tests

主要的想法:我不希望加载并杀死模拟器每次当我开始测试。当我运行测试时,我想一次性加载模拟器并在使用完它之后加载它。

我的环境:

- OS X埃尔卡皮坦 -Intellij IDEA -Selenium -Appium

+0

请提供[mcve]显示“跳过测试”问题的测试套件。 – CommonsWare

回答

1

设置noReset=true和启动Appium服务器之前fullReset= false能力。

+0

它不帮助我。我添加了功能,现在当我运行测试时出现错误,它们被忽略。 测试被忽略。 总测试运行:1,失败:0,跳过:1 配置失败:1,跳过:1 –

+0

我的代码现在是: '@BeforeClass DesiredCapabilities c = new DesiredCapabilities(); c.setCapability(“avd”,“LG_G4._API_22._Android_5.1”); c.setCapability(“deviceName”,“AndroidTestDevice”); c.setCapability(“platformName”,“Android”); c.setCapability(“noReset”,“true”); c.setCapability(“fullReset”,“False”); c.setCapability(“app”,app.getAbsolutePath()); 驱动程序=新的AndroidDriver(新的URL(“http://127.0.0.1:4723/wd/hub”),能力);' –

+0

最终它的工作原理。谢谢!) –

相关问题