2016-11-10 100 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

最終它的工作原理。謝謝!) –

相關問題