destin / maven-test-support-plugin

Apache License 2.0
10 stars 4 forks source link

IntelliJ 15/2016.1/2016.2 compatibility #13

Closed akozlova closed 7 years ago

akozlova commented 8 years ago

Since IDEA 15, api which is used in the plugin is not used by IDEA itself: com.intellij.execution.junit2.states.TestState; JUnitTestTreeView classes are going to be deleted for 2016.2. Could you please update the plugin and create test console with help of com.intellij.execution.testframework.sm.SMTestRunnerConnectionUtil#createAndAttachConsole(java.lang.String, com.intellij.execution.process.ProcessHandler, com.intellij.execution.testframework.TestConsoleProperties)?

As I can see you parse results and add tests to the model: org.dpytel.intellij.plugin.maventest.ReportParser#parseTestSuite.

I suggest to create similar logic to import tests done here: https://github.com/JetBrains/intellij-community/blob/master/platform/smRunner/src/com/intellij/execution/testframework/sm/runner/history/ImportedToGeneralTestEventsConverter.java#L61

destin commented 8 years ago

Thanks for information. I'll change it hopefully over the weekend.

akozlova commented 8 years ago

IDEA 2016.2 will have the api, starting from 2016.3 EAP the classes won't be accessible anymore. Sorry for the inconvenience.

jrd commented 8 years ago

Could you please update? This plugin cannot find anymore my failsafe tests results (IDEA 2016.3 EAP here)

jrd commented 8 years ago

Here is my stacktrace:

com/intellij/execution/junit2/ui/model/StateEvent
java.lang.NoClassDefFoundError: com/intellij/execution/junit2/ui/model/StateEvent
    at org.dpytel.intellij.plugin.maventest.actions.ShowTestResultsAction.actionPerformed(ShowTestResultsAction.java:42)
    at com.intellij.openapi.actionSystem.ex.ActionUtil$1.run(ActionUtil.java:199)
    at com.intellij.openapi.actionSystem.ex.ActionUtil.performActionDumbAware(ActionUtil.java:215)
    at com.intellij.openapi.actionSystem.impl.ActionButton.actionPerformed(ActionButton.java:188)
    at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:154)
    at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:325)
    at java.awt.Component.processEvent(Component.java:6300)
    at java.awt.Container.processEvent(Container.java:2236)
    at java.awt.Component.dispatchEventImpl(Component.java:4891)
    at java.awt.Container.dispatchEventImpl(Container.java:2294)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    at java.awt.Container.dispatchEventImpl(Container.java:2280)
    at java.awt.Window.dispatchEventImpl(Window.java:2750)
    at java.awt.Component.dispatchEvent(Component.java:4713)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    at java.awt.EventQueue.access$500(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.awt.EventQueue$3.run(EventQueue.java:703)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:731)
    at java.awt.EventQueue$4.run(EventQueue.java:729)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:843)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:675)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:391)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: java.lang.ClassNotFoundException: com.intellij.execution.junit2.ui.model.StateEvent PluginClassLoader[org.dpytel.intellij.plugin.maventest, 0.0.19]
    at com.intellij.ide.plugins.cl.PluginClassLoader.loadClass(PluginClassLoader.java:64)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 38 more
destin commented 8 years ago

Hi @jrd - thanks for letting me know. Looks like API change mentioned by @akozlova finally took place. This means that I have to rewrite huge parts of the plugin. It will take me some time, but hopefully I can finish it next week once now that I know what is removed.

destin commented 7 years ago

Finally I managed to rewrite this plugin. It took quite a while and many features still do not work, see https://github.com/destin/maven-test-support-plugin/releases/tag/maven-test-support-plugin-0.0.20

The rest of the features will be restored in next versions. At this moment I just wanted to get this working in any form. I'll close this ticket once I restore them.