Giter VIP home page Giter VIP logo

Comments (5)

enver-haase avatar enver-haase commented on September 25, 2024

I would need to configure the maven-failsafe-plugin:

     <configuration>
            <trimStackTrace>false</trimStackTrace>
            <systemPropertyVariables>
                <root.route>${project.artifactId}-${project.version}</root.route>
                <!-- this is where the driver-binary-downloader-maven-plugin puts them -->
                <webdriver.chrome.driver>webdriver/${os.name}/googlechrome/64bit/chromedriver</webdriver.chrome.driver>
                <!-- Similarly for other browsers -->
            </systemPropertyVariables>
        </configuration>

This is in order to make it work in Linux, OSX, Windows.
The problem, though, is that the downloader uses its very own names, such as
"linux" in small letters when "Linux" is the ${os.name}.

I would love to see this corrected so that one pom.xml is good for all three supported operating systems.

from driver-binary-downloader-maven-plugin.

enver-haase avatar enver-haase commented on September 25, 2024

I am very confused:
selenium-standalone-server-plugin
is the same as
driver-binary-downloader-maven-plugin
?

from driver-binary-downloader-maven-plugin.

Ardesco avatar Ardesco commented on September 25, 2024

yes it's the same plugin, I decide the name wasn't very accurate before I published it to maven, but I never got around to changing the repo name (something I must do).

The plugin stores the location of the binary that it downloaded in a maven variable that you can use to configure your maven-failsafe-plugin properties, so your configuration should look like this:

<configuration>
    <trimStackTrace>false</trimStackTrace>
    <systemPropertyVariables>
        <root.route>${project.artifactId}-${project.version}</root.route>
        <!--Set properties passed in by the driver binary downloader-->
        <webdriver.chrome.driver>${webdriver.chrome.driver}</webdriver.chrome.driver>
        <webdriver.gecko.driver>${webdriver.gecko.driver}</webdriver.gecko.driver>
        <!-- etc... -->
    </systemPropertyVariables>
</configuration>

This maven property that it sets will be for driver binary for the current OS

The code is here:

https://github.com/Ardesco/selenium-standalone-server-plugin/blob/master/src/main/java/com/lazerycode/selenium/SeleniumServerMojo.java#L273

Originally I did try setting environmental variables, but Maven starts new JVM's for each phase so you can't automatically share the the current list of env variables between them and it didn't just work unfortunately.

from driver-binary-downloader-maven-plugin.

enver-haase avatar enver-haase commented on September 25, 2024

I see. Now, I have a project with JUnit4 here where this setting works and one with JUnit5 where it doesn't. Is this a known incompatibility? The problem seems to be with the failsafe plugin not propagating the <webdriver.chrome.driver>path</webdriver.chrome.driver> in its systemPropertyVariables at all.

from driver-binary-downloader-maven-plugin.

Ardesco avatar Ardesco commented on September 25, 2024

It's not a known incompatibility, and I'm surprised to be honest. If the maven-failsafe-plugin is failing to create system properties passed into the JVM it should fail no matter what version of jUnit you are using, and it should work whatever libraries you are using.

Are you using the maven-failsafe-plugin for both your jUnit4 and jUnit5 projects, or are you using the maven-surefire-plugin for one of them and consequently setting the system properties in the wrong phase?

from driver-binary-downloader-maven-plugin.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.