JDK 17 + Spring Boot 3.0.1 + blockhound-junit-platform 1.0.6 환경에서 blockhound 를 사용하려는데 maven test 를 실행하면
Provider reactor.blockhound.junit.platform.BlockHoundTestExecutionListener could not be instantiated
에러가 발생한다
혹시나 앞 글에서 JDK 13 + BlockHound 사용 시 -XX:+AllowRedefinitionToAddDeleteMethods 옵션을 추가해줘야 한다고 했는데 역시나 테스트에서도 마찬가지였다.
https://github.com/reactor/BlockHound/issues/33
프로젝트 리액터 개발팀에서도 이 이슈가 논의됐었나 보다.
<plugins>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<argLine>-XX:+AllowRedefinitionToAddDeleteMethods</argLine>
</configuration>
</plugin>
...
</plugins>
이렇게 maven test 시 jvm 옵션에 -XX:+AllowRedefinitionToAddDeleteMethods 를 주면 해결 된다.