У меня проблема с использованием jdi и мобильного тестирования.
Я пытаюсь создать простой мобильный тест, сопровождаемый документацией и примером проекта из Git.
Проект на Java 11, Ubuntu
Проект состоит из:
Применение:
import com.android.testing.pages.*;
import com.epam.jdi.uitests.mobile.appium.elements.composite.Application;
public class ClockApp extends Application {
public static AlarmPage alarmPage;
}
Страница:
import com.epam.jdi.uitests.mobile.appium.elements.common.Button;
import com.epam.jdi.uitests.mobile.appium.elements.composite.Section;
import org.openqa.selenium.support.FindBy;
public class AlarmPage extends Section {
@FindBy(xpath = "//android.widget.ImageView[@content-desc=\"More options\"]")
public Button dots;
}
TestBase:
import com.epam.jdi.uitests.mobile.testRunner.TestNGBase;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import java.net.URL;
import static com.epam.jdi.uitests.core.settings.JDISettings.driverFactory;
import static com.epam.jdi.uitests.mobile.appium.elements.composite.Application.init;
public abstract class TestBase extends TestNGBase {
private static AppiumDriver<AndroidElement> driver;
@BeforeMethod
public static void setUp() throws Exception {
init(ClockApp.class);
DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
desiredCapabilities.setCapability("deviceName", "emulator-5554");
desiredCapabilities.setCapability("platformVersion", "8.0.0");
desiredCapabilities.setCapability("appPackage", "com.google.android.deskclock");
desiredCapabilities.setCapability("appActivity", "com.android.deskclock.DeskClock");
desiredCapabilities.setCapability("platformName", "android");
URL remoteUrl = new URL("http://localhost:4723/wd/hub");
driver = new AndroidDriver(remoteUrl, desiredCapabilities);
}
@AfterMethod
public static void tearDown(){
driver.quit();
}
}
Тест:
import org.testng.annotations.Test;
import static com.android.testing.ClockApp.alarmPage;
public class SetAlarmTest extends TestBase{
@Test
public void setAlarm(){
alarmPage.dots.click();
}
}
Сбой при инициализации TestNG с NullPointerException, в классе JDISettings - метод initFromProperties () - PropertyReader.fillAction (driverFactory :: setRunType, "run.type"), потому что driverFactory имеет значение null.
Я что-то пропустил?