In order to setup Graphene's library dependencies, you need to choose between components:
- test framework (JUnit, TestNG, ...)
- Arquillian mode (standalone, container)
Graphene should fluently work with JUnit and TestNG, you need to include their dependencies in your POM dependencies section:
You can choose between following Arquillian modes
- runs tests without container integration, only lifecycle of extensions is managed
- allows to use Graphene independently of Arquillian containers and deployment management
- runs tests with container, managed lifecycle of container including deployment
- you can still use Graphene without managing lifecycle - just do not provide @Deployment in your test case
and include those in dependencies section of your POM:
Graphene uses Arquillian Containers in order to manage lifecycle of the application container and deployment.
To setup Arquillian to use your favorite container, refer to Container adapters.
Graphene 2 covers integration with WebDriver (aka Selenium 2), but it can be used in the same project together with Graphene 1 (based on Selenium 1).
For more detailed summary of differences, refer to Which Graphene to use?
When adding following dependencies, all required dependencies should be brought to your project as transitive dependencies, including:
In order to manage or override dependency versions used in the project, it is recommended to use BOMs.
By importing BOM to your Maven POM, you manage versions of dependencies, so you don't need to define them explicitly.
In connection to Graphene, you may want to use these BOMs: