Re: Maven Unit tests with EOF
Re: Maven Unit tests with EOF
- Subject: Re: Maven Unit tests with EOF
- From: Paul Hoadley via Webobjects-dev <email@hidden>
- Date: Thu, 13 Feb 2020 14:07:24 +1030
Hi Aaron,
I don't know whether you went on to solve your problem here, but I've just
spent a few hours of my life that I'll never get back debugging something
similar. I had just built a new framework from scratch, and WOUnit testing
under maven-surefire-plugin failed, with WOUnit complaining that it couldn't
find my models. I started by logging out NSBundle.mainBundle(), and recalled
your recent post:
On 23 Jan 2020, at 15:01, Aaron Rosenzweig <email@hidden> wrote:
> There are three types of concrete (not abstract) NSBundles:
> 1) NSLegacyBundle
> 2) NSFluffyBunnyProjectBundle
> 3) NSMavenProjectBundle
During unit test initialisation it was reporting that the main bundle was an
NSFluffyBunnyProjectBundle, but the project type is Maven.
> When I run this from Eclipse I can hit breakpoints and I confirmed that it is
> making an NSFluffyBunnyProjectBundle.
The model-finding issue described above was apparent only when running "mvn
verify" from the command line, and Eclipse does have a habit of doing
additional classpath setup, so if you're just talking about "Run As > JUnit
Test" from within Eclipse, then all bets are off, but if you're seeing this
from the command line and your project is a Maven project, then this is wrong.
If you dig down into ERFoundation.jar and decompile
NSStandardProjectBundle.Factory, you'll find this:
if ("org.maven.ide.eclipse.maven2Nature".equals(nature)) {
mavenProject = true;
}
It's scanning the project's .project file and checking for:
<nature>org.maven.ide.eclipse.maven2Nature</nature>
If it finds that, it creates an NSMavenProjectBundle. If it doesn't, then it's
NSFluffyBunnyProjectBundle, which will be deficient because everything is in
the wrong places. (For example, it can't find models because they're in
src/main/resources, not Resources.)
Adding that nature element to .project immediately fixed my issue. Why wasn't
it there in the first place? Because the Wonder archetype (and our custom
archetype that's based on it) no longer adds it because it's obsolete.
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.objectstyle.wolips.incrementalframeworknature</nature>
</natures>
So, does your framework's .project file contain that nature element, and if not
does adding it in fix your issue?
--
Paul Hoadley
https://logicsquad.net/
https://www.linkedin.com/company/logic-squad/
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden