I'm trying to write an errorformat for JUnit. Directory structure from cwd is:


Amongst all the cruft outputted by JUnit, relevant output lines looks like: unsw.test.PiazzaTest.testSearchByTag(PiazzaTest.java:50)

I capture this with let &errorformat = '%.%#unsw\.test%.%#(%f:%l)' This expects PiazzaTest.java to be in the cwd when it is not.

How can I solve this?

  • How would you tell &efm which directory the file is in? I suspect you may be better served by having the output give you the path (I don't use JUnit so can't advise on how to do so). Jun 4 at 14:58
  • 1
    Possibilities: use %D and %X to handle the package names as directories or post-process JUnit's output (externally w/ script or internally w/ QuickfixCmdPost, see :help QuickfixCmdPost-example)
    – D. Ben Knoble
    Jun 4 at 18:41

Although not very flexible:


echo "Entering dir '$(pwd)/unsw/test'" 
java -jar ../lib/junit-platform-console-standalone-1.7.0-M1.jar \
        -cp . --scan-class-path --disable-banner --details=summary
echo "Leaving dir"


let &errorformat = 
 \ "%.%#unsw\.test%.%#(%f:%l),"
 \. "%DEntering dir '%f',%XLeaving dir,"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.