testmycode / tmc-intellij

*BETA* TestMyCode plugin for IntelliJ IDEA
MIT License
24 stars 13 forks source link

Plugin does not handle compilation errors when running tests #113

Closed cxcorp closed 7 years ago

cxcorp commented 7 years ago
  1. Open exercise
  2. Introduce some syntax error, e.g. remove a semi-colon
  3. Run TMC tests
  4. Notice how it says "Tests passed"
cxcorp commented 7 years ago

Reason why mvn test-compile fails:

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building 01.PortScanner 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ 01.PortScanner ---
[INFO] Deleting C:\Users\Joona\Documents\IdeaProjects\TMCProjects\mooc-2016-securing-software\Set1-01.PortScanner\target
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ 01.PortScanner ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\Users\Joona\Documents\IdeaProjects\TMCProjects\mooc-2016-securing-software\Set1-01.PortScanner\src\main\resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ 01.PortScanner ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to C:\Users\Joona\Documents\IdeaProjects\TMCProjects\mooc-2016-securing-software\Set1-01.PortScanner\target\classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.968 s
[INFO] Finished at: 2016-12-15T17:02:53+02:00
[INFO] Final Memory: 8M/155M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project 01.PortScanner: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

$JAVA_HOME is set to point at a JRE instead of a JDK.

cxcorp commented 7 years ago

I believe I found the issue. fi.helsinki.cs.tmc.intellij.services.TestRunningService::prepareThreadForRunningTests does not check the RunResult's status enum for compilation errors - it only catches exceptions.

The ErrorMessageService class is quite difficult to use right now so I'll have to look into that first.

cxcorp commented 7 years ago

Issue also manifests itself when javac is missing from the PATH.