Не удается прочитать файл свойств на ферме устройств: - src / test / resources / Properties / Android_Or.properties -error - PullRequest
0 голосов
/ 17 июня 2020

Пожалуйста, дайте мне знать, как читать файл свойств в ферме устройств, поскольку следующий код не работает. Я изучил различные решения, но все же ферма устройств не может распознать файл свойств, хотя этот код отлично работает локально

public abstract class AndroidCapabilities {

    // protected static AppiumDriver<MobileElement> driver;

    public static ExtentHtmlReporter reporter;
    public static ExtentReports extent;
    public static ExtentTest logger1;

//  @Parameters("browser")
//  @BeforeSuite
//  public void setUp() throws MalformedURLException {


    public static AndroidDriver<MobileElement> driver;
      public abstract String getName();

    @BeforeTest
    public abstract void setUpPage();

    @BeforeSuite
    public void setUpAppium() throws MalformedURLException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
//      capabilities.setCapability("device", "Android");
//      capabilities.setCapability("platformName", "Android");
//      capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
        final String URL_STRING = "http://127.0.0.1:4723/wd/hub";

        URL url = new URL(URL_STRING);

        // Use a empty DesiredCapabilities object
        driver = new AndroidDriver<MobileElement>(url, capabilities);

        // Use a higher value if your mobile elements take time to show up
        driver.manage().timeouts().implicitlyWait(35, TimeUnit.SECONDS);
    }

    public static Properties properties;
    static {
        properties = new Properties();
        FileInputStream fis;
        InputStream input;
        try {
//           fis = new FileInputStream(System.getProperty("user.dir") +
//           "//src//test//resources//Properties//Android_OR.properties");
            fis = (FileInputStream) Thread.currentThread().getContextClassLoader()
                    .getResourceAsStream("//Properties//Android_OR.properties");
            System.out.println(properties.getProperty("url"));
            properties.load(fis);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }



    @BeforeTest
    public void createReport() {
        reporter = new ExtentHtmlReporter("./extent.html");
        extent = new ExtentReports();
        extent.attachReporter(reporter);

    }

    @AfterTest
    public void flush() throws IOException {
        extent.flush();
        // reporter.setAppendExisting(true);
    }

    @AfterSuite
    public void closeApplication() {
        driver.quit();
        Reporter.log("===Session End===", true);
    }

}

1 Ответ

0 голосов
/ 03 июля 2020
Faced the same issue. Instead of using System.getProperty, try this:    

// pass fileName as "Android_OR.properties"
public Properties loadProperty(String fileName) {
        Properties prop = new Properties();
        try (InputStream input = Base.class.getClassLoader().getResourceAsStream(filePath)) {

            if (input == null) {
                System.out.println("Sorry, unable to find config.properties");
                return prop;
            }

            // load a properties file from class path, inside static method
            prop.load(input);

        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return prop;
    }
...