[ 
https://issues.apache.org/jira/browse/SUREFIRE-1832?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Elliotte Rusty Harold resolved SUREFIRE-1832.
---------------------------------------------
    Resolution: Fixed

> Exceptions thrown in TestRules are ignored in parallel test execution
> ---------------------------------------------------------------------
>
>                 Key: SUREFIRE-1832
>                 URL: https://issues.apache.org/jira/browse/SUREFIRE-1832
>             Project: Maven Surefire
>          Issue Type: Bug
>    Affects Versions: 2.22.2
>         Environment: $ mvn --version                                          
>                                                                               
> Apache Maven 3.6.3
> Maven home: /usr/share/maven
> Java version: 1.8.0_265, vendor: Private Build, runtime: 
> /usr/lib/jvm/java-8-openjdk-amd64/jre
> Default locale: en_US, platform encoding: UTF-8
> OS name: "linux", version: "5.4.0-42-generic", arch: "amd64", family: "unix"
> $ java -version 
> openjdk version "1.8.0_265"
> OpenJDK Runtime Environment (build 1.8.0_265-8u265-b01-0ubuntu2~20.04-b01)
> OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)
>            Reporter: Filipe Roque
>            Priority: Major
>
> when an exception is thrown in a JUnit TestRule and maven-surefire-plugin ins 
> run in parallel mode, the exception is ignored and does not break the build. 
>   
> *Unit test*
> {code:java}
> import static org.junit.Assert.assertTrue;
> import org.junit.Rule;
> import org.junit.Test;
> import org.junit.rules.TestRule;
> import org.junit.runner.Description;
> import org.junit.runners.model.Statement;
> public class TestWithRuleThatThrows
> {
>     @Rule
>     public TestRuleThatThrows testRuleThatThrows = new TestRuleThatThrows();
>     @Test
>     public void shouldAnswerWithTrue()
>     {
>         assertTrue( true );
>     }
>     public static class TestRuleThatThrows implements TestRule {
>         @Override
>         public Statement apply(final Statement base, final Description 
> description) {
>             throw new RuntimeException("some problem");
>         }
>     }
> }
> {code}
> *pom.xml*
> {code:xml}
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0"; 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
> http://maven.apache.org/xsd/maven-4.0.0.xsd";>
>   <modelVersion>4.0.0</modelVersion>
>   <groupId>com.mycompany.app</groupId>
>   <artifactId>my-app</artifactId>
>   <version>1.0-SNAPSHOT</version>
>   <name>my-app</name>
>   <!-- FIXME change it to the project's website -->
>   <url>http://www.example.com</url>
>   <properties>
>     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
>     <maven.compiler.source>1.8</maven.compiler.source>
>     <maven.compiler.target>1.8</maven.compiler.target>
>   </properties>
>   <dependencies>
>     <dependency>
>       <groupId>junit</groupId>
>       <artifactId>junit</artifactId>
>       <version>4.11</version>
>       <scope>test</scope>
>     </dependency>
>   </dependencies>
> </project>
> {code}
>  
> {code:java}
> $ mvn org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test > /dev/null 
> ; echo $?
> 1
> $ mvn org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test 
> -Dparallel=all -DthreadCount=1 > /dev/null ; echo $?                          
>   
> 0
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to