Issue happens with JMockit 1.26 only
I'm running JMockit with the following JVM args
This solution successfully produce coverage reports with JMockit 1.25 and 1.26, but with 1.26 it prints the following error to console:
Exception in thread "Thread-5" java.lang.AssertionError: Failed to create output dir: D:\my_project\build\reports\coverage
JMockit: Coverage report written to D:\my_project\build\reports\coverage
I am unable to reproduce the problem. Could you post a small, but complete, sample project?
This happens with java 8u92 64 bit on windows 7 64bit. We will provide test case tomorrow.
I should add that regardless of this trace the report is created btw this message is very frustrating
Attached a zip file with my initial trial project (for IntelliJ IDEA). Github is complaining about not supporting a zip file, so I renamed it to a ".gif".
Sorry, I didn't provide all necessary information before.
I use JMockit with Gradle - it seems that version of Gradle does not matter (I tested with 2.9 and 2.14.1)
Here is a sample project reproducing this bug: myproject.zip.
Java version is 1.8.092, OS Windows 7 x64. It's really strange that everything is okay with JMockit 1.25.
If it can make any help, it's possible to attach debugger to test using the following command: gradlew clean test --tests "com.example.BillingServiceTest" -Dtest.debug (BillingServiceTest is a sample test class from the project above).
@rliesenfeld your test sample works properly on my env. BTW the sample that @rkuchynski prepared failed with trace.
I don't know yet what exactly happens, but a solution is to remove the redundant use of the "-javaagent" JVM parameter, and the "coverage" system properties. Leave only "coverage-metrics=all" (to enable the coverage tool), and "coverage-outputDir" (as the desired directory differs from the default).
Thanks, but we use jmockit as main coverage reporting tool even for modules where no mocks and gradle configuration is united for all modules so your advice don't work as far as I understand it