Run tests located within a fat maven jar? - maven

I have a maven project which is a test harness including tests.
The tests can be run using surefire, within intelliJ. And the IDE states the command line it is running in order to do this:
java
-Dmaven.multiModuleProjectDirectory=...
"-Dmaven.home=...
"-Dclassworlds.conf=...
"-Dmaven.ext.class.path=...
"-javaagent:...
-Didea.version=...
install
If I put the jar on another machine, and wish to run the tests contained within it (ideally with surefire plugin) should I be aiming to construct a similar command line as to the above, or run something like mvn test {jar name} or mvn surefire:test {jar name}

Related

Maven how to show Junit test like on Eclipse IDE

I would like to run Junit tests via maven command like having the test result
with the same graphical message that I can see using Eclipse IDE.
For example, if I run Junit test via Eclipse I can see this tree image:
But, if I run the same tests via maven command line, I can see only the grand total result without details.
For example:
There is a way to run maven command line tests and receive the test result like Eclipse IDE?
I use surefire plugin on my project.
Thanks in advance.

How to run multiple cucumber runners from maven command line

I've 2 CI flows , which flow needs to run it's own cucumber runner
RunnerATest
RunnerBTest
I'm using maven command line to run the tests (mvn test)
Is there a way to select a specific Runner from command line ?
Thanks
Maven Surefire Plugin - Running a Single Test
During development, you may run a single test class repeatedly. To run this through Maven, set the test property to a specific test case.
mvn -Dtest=TestCircle test
So you'd do just that. mvn -Dtest=RunnerATest test.

Maven run command for specific test suite

i am trying to build maven command to run specific test:
i want to be able to execute this:
mvn test
mvn integration
mvn specificdata
so each test will go into a folder and run the suite
src/test
src/integration
src/specificdata
mvn test works with the test folder but when i run
mvn specificdata i get
[ERROR] Unknown life-cycle phase "specificdata".
same for integration
how can i make mvn run these tests independently?
This cannot be done in the way you describe it.
test is a phase and as such, part of the standard lifecycle. Calling mvn test does not only run tests, but executes the phases before test as well.
The standard lifecycle also offers phases for integration tests, esp. integration-test. Integration tests are usually put into src/test as well and distinguished by a naming convention. But beware: Calling mvn integration-test will call all previous phases (including test, compileetc.) as well.
https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

How to setup jenkins to run Selenium / Maven / TestNG

I'd like to be able to run by Jenkins a series of test from Selenium. I've see a lot of topic about the subject but it's not clear to me.
Do I need to call maven to run the project or can I directly call Testng ?
Also do I need with Jenkins to call my project using maven or using Ant ?
What is the best practice. Is there specific plugin that I need.
Do I need to call maven to run the project or can I directly call Testng ?
You can call testng through maven or ant. There is no direct runner plugin for Jenkins.
What is the best practice. Is there specific plugin that I need.
You might need the TestNG plugin to show the results inside Jenkins, but it is optional. Best practice is to use maven or ant. You can find a nice ant example here
You can use run TestNG scripts in Jenkins with or without Maven. Maven as a build tool, in my opinion, looks more robust and gives you more flexibility than Ant.
To run pure TestNg script in Jenkins, enter the following in the 'build' section:
D:>java -cp "Pathtolibfolder\lib\*;Pathtobinfolder\bin" org.testng.TestNG testng.xml
Click on Save button.
Note: The actual path of lib and bin folder need to add the in above
command.
After saving the command, Jenkins will build project in predefined
time, and this command will run using TestNG.
The result will be stored in custom report HTML file that can be sent via
email with a small Jenkins configuration

How to Tests for a specific module under a project in Jenkins through maven?

I use Jenkins to build my project which has multiple modules. This project has a root pom.xml which build all the modules under that project. I specify this pom.xml as the root POM.
Now I want to run tests as a "post-build step". But, I don't want to run all the tests under all modules. I want to run tests only under a specific module.
I tried using the shell command to change the directory to the module for which tests has to be run and then trigger maven. I also tried using the -f switch to specify the pom.xml for that particular module. Both of these steps are not working.
Please help me guys in resolving this problem.
Thanks
Just run from the root path:
mvn -pl :submodule test
protip: mvn --help

Resources