Bird
Raised Fist0
JUnittesting~5 mins

Maven Surefire plugin in JUnit - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the Maven Surefire plugin used for?
The Maven Surefire plugin runs unit tests during the build process. It helps check if your code works as expected before packaging.
Click to reveal answer
intermediate
How do you specify which tests to run with Maven Surefire?
You can use the includes and excludes tags in the plugin configuration to select test files by name patterns.
Click to reveal answer
beginner
What is the default test file naming pattern for Maven Surefire?
By default, Surefire runs tests matching **/Test*.java, **/*Test.java, and **/*Tests.java.
Click to reveal answer
beginner
How can you skip tests when running Maven build with Surefire?
You can skip tests by adding -DskipTests=true to the Maven command. This speeds up the build but skips test verification.
Click to reveal answer
beginner
What happens if a test fails during the Maven Surefire plugin execution?
If a test fails, Surefire marks the build as failed and stops the build process unless configured to continue.
Click to reveal answer
What is the main role of the Maven Surefire plugin?
ACompile Java source code
BRun unit tests during the build
CPackage the application
DDeploy the application
Which file naming pattern does Surefire use by default to find tests?
A**/Test*.java
B**/*.java
C**/Main*.java
D**/App*.java
How do you skip tests when running Maven with Surefire?
A-DskipTests=true
B-DrunTests=false
C-DnoTests=true
D-DdisableTests=true
If a test fails during Surefire execution, what happens by default?
ATests are rerun automatically
BBuild continues ignoring failures
CBuild fails and stops
DBuild succeeds with warnings
Where do you configure the Maven Surefire plugin?
AIn the src/test/resources folder
BIn the settings.xml file
CIn the .mvn folder
DIn the <build><plugins> section of pom.xml
Explain how Maven Surefire plugin helps in the software build process.
Think about what happens when you build your project and want to be sure your code works.
You got /4 concepts.
    Describe how to configure Maven Surefire plugin to run only specific tests.
    Focus on how to tell Surefire which tests to run or skip.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the Maven Surefire plugin in a JUnit testing project?
      easy
      A. To deploy the application to a server
      B. To compile Java source code
      C. To run tests automatically during the build process
      D. To package the application into a JAR file

      Solution

      1. Step 1: Understand the role of Maven Surefire plugin

        The Maven Surefire plugin is designed to run tests automatically during the build process, ensuring code correctness early.
      2. Step 2: Differentiate from other Maven plugins

        Other plugins like compiler or deploy handle compiling or deployment, not running tests.
      3. Final Answer:

        To run tests automatically during the build process -> Option C
      4. Quick Check:

        Maven Surefire runs tests during build [OK]
      Hint: Surefire runs tests during build, not compile or deploy [OK]
      Common Mistakes:
      • Confusing Surefire with compiler plugin
      • Thinking Surefire packages the app
      • Assuming Surefire deploys the app
      2. Which XML tag correctly configures the Maven Surefire plugin in the pom.xml file?
      easy
      A. org.apache.maven.pluginsmaven-jar-plugin
      B. org.apache.maven.pluginsmaven-compiler-plugin
      C. org.junit.jupiterjunit-jupiter-engine
      D. org.apache.maven.pluginsmaven-surefire-plugin

      Solution

      1. Step 1: Identify the correct plugin artifactId for Surefire

        The Maven Surefire plugin uses maven-surefire-plugin as its artifactId.
      2. Step 2: Confirm groupId and artifactId match Surefire plugin

        The groupId is org.apache.maven.plugins, which is standard for Maven plugins.
      3. Final Answer:

        <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId></plugin> -> Option D
      4. Quick Check:

        Surefire plugin artifactId = maven-surefire-plugin [OK]
      Hint: Surefire plugin artifactId always contains 'surefire' [OK]
      Common Mistakes:
      • Using maven-compiler-plugin instead of surefire
      • Confusing JUnit engine with Surefire plugin
      • Using maven-jar-plugin for testing
      3. Given this pom.xml snippet, what will happen when you run mvn test?
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M7</version>
        <configuration>
          <includes>
            <include>**/*Test.java</include>
          </includes>
        </configuration>
      </plugin>
      medium
      A. Only Java files ending with 'Test.java' will be run as tests
      B. All Java files will be compiled but no tests will run
      C. Tests will run only if file names start with 'Test'
      D. No tests will run because version is invalid

      Solution

      1. Step 1: Understand the includes configuration

        The <includes> tag specifies which test files to run. Here, it includes files matching **/*Test.java.
      2. Step 2: Interpret the pattern meaning

        The pattern means any Java file ending with 'Test.java' in any folder will be run as a test.
      3. Final Answer:

        Only Java files ending with 'Test.java' will be run as tests -> Option A
      4. Quick Check:

        Includes pattern '**/*Test.java' runs matching test files [OK]
      Hint: Includes '**/*Test.java' runs files ending with 'Test.java' [OK]
      Common Mistakes:
      • Assuming all Java files run as tests
      • Thinking files starting with 'Test' run
      • Believing version 3.0.0-M7 is invalid
      4. You added the Maven Surefire plugin to your pom.xml but tests are not running. Which of these is the most likely cause?
      medium
      A. The pom.xml file is not saved
      B. The artifactId is misspelled as maven-surefire-plugn
      C. The version tag is missing
      D. JUnit tests are written in a different folder than src/test/java

      Solution

      1. Step 1: Check plugin artifactId spelling

        If the artifactId is misspelled, Maven cannot find the plugin, so tests won't run.
      2. Step 2: Consider other causes

        Missing version usually defaults to latest, unsaved pom.xml is unlikely, and test folder location matters but less common cause.
      3. Final Answer:

        The artifactId is misspelled as maven-surefire-plugn -> Option B
      4. Quick Check:

        Misspelled artifactId stops Surefire plugin loading [OK]
      Hint: Check artifactId spelling first if tests don't run [OK]
      Common Mistakes:
      • Ignoring typo in artifactId
      • Assuming missing version always breaks build
      • Not verifying test source folder
      5. You want to run only tests tagged with @Fast annotation using Maven Surefire plugin. Which configuration snippet in pom.xml achieves this?
      hard
      A. Fast
      B. Fast
      C. **/*Fast.java
      D. Fast*

      Solution

      1. Step 1: Understand Surefire's group filtering

        Surefire uses <groups> to include tests with specific JUnit categories or tags.
      2. Step 2: Match the correct tag for including groups

        Using <groups>Fast</groups> runs only tests tagged with @Fast.
      3. Final Answer:

        <configuration><groups>Fast</groups></configuration> -> Option A
      4. Quick Check:

        Use <groups> to run tagged tests [OK]
      Hint: Use <groups> tag to run tests with specific annotations [OK]
      Common Mistakes:
      • Using excludedGroups instead of groups
      • Filtering by filename instead of annotation
      • Using <test> tag incorrectly
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard