Am Freitag, 16. Mai 2008 17.23:36 schrieb James Carman: > I just checked in some changes to the pom.xml files and moved the > HiveMindTestCase into src/test. Let me know how it looks for you. > All test cases passed for me. I might try to move stuff around into > the "normal" maven directories, too (src/main/java, etc.)
Well, an open question about this is: How is a user supposed to use that class now? Right, having it in HiveMind's core framework isn't a nice solution. On the other hand, moving it to src/test makes this class unusable for other projects, as it won't ever be included in any artifact. To avoid dependencies on JUnit/EasyMock, it should actually be a separate project producing a separate artifact, something like hivemind-test, which users can include as dependency scoped test. Then again, a whole sub-project for a single class file seems a bit ridiculous. Also, this would introduce a circular dependency: HiveMind's test cases need HiveMindTestCase, so hivemind-test would have to be built before hivemind-framework. However, HiveMindTestCase won't compile if hivemind-framework isn't built. I think, keeping HiveMindTestCase in src/main and declaring the dependencies on JUnit and EasyMock in the scope "test" is the better solution, if users should be able to use that class in their own tests. If JUnit and EasyMock are scoped "test", this scope will be included in the test scope of projects that depend on hivemind-framework with scope "test" and "runtime". Unfortunately, in 99% of the cases, my hivemind dependency is scoped "provided", so I still would have to include them manually (if I'd like to use HiveMindTestCase). I use TestNG anyway, however, and in my case, unit tests *never* need HiveMind (maybe a few interfaces like Module from it, but never a running registry), and assuming, that HiveMind works, this is what EasyMock is for ... ;) This throws us back at the question: Is there any need to provide HiveMindTestCase to the user at all? Tests that need a running HiveMind registry are integration tests, not unit tests, so users should have no need for that class. For a table of which scope translates to which scope in transitive dependencies, see here: http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope Cheers, Raffi -- The difference between theory and practice is that in theory, there is no difference, but in practice, there is. [EMAIL PROTECTED] · Jabber: [EMAIL PROTECTED] PGP Key 0x5FFDB5DB5D1FF5F4 · http://keyserver.pgp.com
