MXUnit Eclipse Plugin Updates

Monday, February 18, 2008

I just added a new release of the MXUnit plugin for Eclipse to the update site. If you have no idea what I'm talking about, and you're interested in unit testing for CF, give MXUnit a shot (http://mxunit.org). For those of you who do know what I'm talking about, the changes are:
  • Biggest change: the plugin now supports authentication. Basic authentication has been tested. NTLM should work, although your mileage may vary. You set the username and password in the MXUnit project properties, not the MXUnit preferences
  • Preference and property pages now have links directly to the appropriate help resource
  • Eclipse help updated to include instructions for authentication
  • When loading test methods into the test tree, the performance is now much better. It no longer blocks until all methods are loaded but instead loads asynchronously. The user experience difference is quite dramatic
Thanks to a user named Goyiux for prompting the authentication stuff. Thanks to all the dudes on the eclipse newsgroups for answering my pestering questions about dumb layout stuff. Thanks to Weyerbacher for brewing really good 10% beers for numbing the NTLM/Axis pain.

4 comments:

Aaron Longnion said...

sorry for posting here, as Google Groups is giving errors when I try to join the MXUnit group... sigh...

First off, thanks for creating MXUnit! I'm looking forward to checking it out fully. I've been using CFUnit for a while, but am interested in a CF Unit Testing framework that's being actively developed.

Wanted you to know I'm getting the following errors from the Eclipse Plugin:

java.lang.NullPointerException
at org.mxunit.eclipseplugin.actions.TestSuiteCreator.createSuite(TestSuiteCreator.java:42)
at org.mxunit.eclipseplugin.actions.ComponentSearchAction.run(ComponentSearchAction.java:60)
at org.mxunit.eclipseplugin.views.MXUnitView.handleKeyPressed(MXUnitView.java:587)
at org.mxunit.eclipseplugin.views.MXUnitView$9.keyPressed(MXUnitView.java:556)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:154)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:947)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:975)
at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:971)
at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1285)
at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3772)
at org.eclipse.swt.widgets.Tree.WM_CHAR(Tree.java:5374)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:3672)
at org.eclipse.swt.widgets.Tree.windowProc(Tree.java:5370)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4364)
at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2265)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3291)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
at org.eclipse.equinox.launcher.Main.main(Main.java:1148)

Session Data:
eclipse.buildId=M20071023-1652
java.version=1.6.0_03
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Framework arguments: -vmargs -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m
Command-line arguments: -os win32 -ws win32 -arch x86 -vmargs -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m -clean
This is a continuation of log file C:\Apache2\htdocs\.metadata\.bak_0.log
Created Time: 2008-02-06 11:12:25.689


- Aaron Longnion

Marc Esher said...

Aaron, can you explain exactly what you did? I'm talking every button you clicked, etc.

It's throwing the npe at a line where it's trying to get the eclipse project object for the resource you selected in the component search field. the only time i've ever gotten this was when I had some wonky stuff going on where my filesystem was updated but my eclipse project was not, i.e. the file system was out of synch with eclipse. right clicking on the project, then clicking "refresh", fixed this for me.

please give that a shot and see if you can replicate the problem still.

if you still can, then if you can take screen shots of your workspace, along with screenshots of the steps you're taking, and email them to [email protected], then i can hopefully figure it out.

marc

Mike said...

Probably not much help, but I have it running on both OS X and Vista Enterprise and I didn't have a problem with the install.

If I had to guess what to do next, I would try disabling Aptana. Every time I try to use that thing, it interferes with something. I got to the point where I just stopped bothering and just use the WTP that comes with eclipse.

Marc Esher said...

for posterity's sake: aaron and i continued this conversation over several emails; the bug was fixed, and a new version of the plugin was released.