Failed to create output dir for code coverage report #316

rkuchynski opened this Issue Aug 2, 2016 · 9 comments


None yet

3 participants


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
        at mockit.coverage.reporting.OutputFile.getOutputFileCreatingDirIfNeeded(
        at mockit.coverage.reporting.OutputFile.<init>(
        at mockit.coverage.reporting.sourceFiles.FileCoverageReport.<init>(
        at mockit.coverage.reporting.CoverageReport.generateFileCoverageReport(
        at mockit.coverage.reporting.CoverageReport.generateFileCoverageReportsWhileBuildingPackageLists(
        at mockit.coverage.reporting.CoverageReport.generate(
        at mockit.coverage.OutputFileGenerator.generateHTMLReportIfRequested(
        at mockit.coverage.OutputFileGenerator.generate(
        at mockit.coverage.CodeCoverage$
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?

susau commented Aug 2, 2016

This happens with java 8u92 64 bit on windows 7 64bit. We will provide test case tomorrow.

susau commented Aug 2, 2016

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:
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).

susau commented Aug 3, 2016 edited

@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).

@rliesenfeld rliesenfeld added bug and removed could not reproduce labels Aug 3, 2016
@rliesenfeld rliesenfeld self-assigned this Aug 3, 2016
susau commented Aug 3, 2016 edited

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



Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment