This is probably something the junit guys would be able to help you with more than we can. Unless of course they say it is strictly a Maven/Surefire issue...
Wayne On 8/22/07, flyingtiger <[EMAIL PROTECTED]> wrote: > > I don't think there's a way to exclude the Wrapper since it is an inner > class. I tried to exclude it but it won't work. I then added a fake test so > the Wrapper class turns to be > > public static class Wrapper extends TestSetup { > > public Wrapper(){} > public Wrapper(Test arg0) { > super(arg0); > // TODO Auto-generated constructor stub > } > public Wrapper(TestSuite suite){ > super(suite); > } > public void setUp() throws Exception { > prepareTestData(); > } > public void tearDown() throws Exception { > destroyTestData(); > } > public void testTrue(){ > assertTrue(true); > } > } > > but now I've got complier error > > junit.framework.AssertionFailedError: Exception in constructor: testTrue > (java.l > ang.Error: Unresolved compilation problem: > Implicit super constructor TestSetup() is undefined. Must explicitly > inv > oke another constructor > > the TestSetup class only has one constructor public > TestSetup(junit.framework.Test test) > > > > > Nathaniel Stoddard wrote: > > > > I think what you want to do is add the Wrapper class to your list of > > excluded files. > > > > <exclude>**/Wrapper</exclude> > > > > .... or something like that. The static inner class is throwing me off, > > but you get the idea. At this point, surefire is instantiating it just > > fine, but can't find any testXXX methods, so fails the test. If Wrapper > > is going to be extended by actual test cases elsewhere, it's never going > > to be used itself, ergo the exclude. > > > > flyingtiger wrote: > >> I changed the inner class to > >> > >> public static class Wrapper extends TestSetup { > >> > >> public Wrapper(){ > >> ; > >> } > >> public Wrapper(Test arg0) { > >> super(arg0); > >> // TODO Auto-generated constructor stub > >> } > >> public Wrapper(TestSuite suite){ > >> super(suite); > >> } > >> public void setUp() throws Exception { > >> prepareTestData(); > >> } > >> public void tearDown() throws Exception { > >> destroyTestData(); > >> } > >> } > >> > >> eclipse is complaining an error "Implicit super constructor TestSetup() > >> is > >> undefined. Must explicitly invoke another constructor". > >> > >> runing it I got > >> > >> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.062 sec > >> <<< FA > >> ILURE! > >> warning(junit.framework.TestSuite$1) Time elapsed: 0 sec <<< FAILURE! > >> junit.framework.AssertionFailedError: No tests found in > >> com.gorillanation.dartai > >> p.TestDataAccess$Wrapper > >> at junit.framework.Assert.fail(Assert.java:47)... > >> > >> and what do you mean by surefire has different version? can I modify my > >> pom.xml to specify the version of the surefire? I did a read the surefire > >> plug in page but didn't really find such an option. > >> > >> my pom: > >> > >> <plugin> > >> <groupId>org.apache.maven.plugins</groupId> > >> <artifactId>maven-surefire-plugin</artifactId> > >> <configuration> > >> <excludes> > >> <exclude>**/AppTest.*</exclude> > >> </excludes> > >> <useFile>false</useFile> > >> </configuration> > >> </plugin> > >> > >> > >> > >> > >> > >> > >> Bryan Loofbourrow wrote: > >> > >>>>> with mvn test I got error > >>>>> > >>> "junit.framework.AssertionFailedError: Class Order$OrderChargeTest has > >>> no > >>> public constructor TestCase(String name) or TestCase()" << > >>> > >>> If memory serves, I think the solution is to make sure all your classes > >>> (inner included) have a no-args constructor (or, as appropriate, a > >>> constructor-with-String). I think surefire might be force-instantiating > >>> all of the classes. I also seem to recall that only certain surefire > >>> versions exhibit this behavior. > >>> > >>> -- Bryan > >>> > >>> -----Original Message----- > >>> From: flyingtiger [mailto:[EMAIL PROTECTED] > >>> Sent: Tuesday, August 21, 2007 4:59 PM > >>> To: users@maven.apache.org > >>> Subject: A unit test error with maven > >>> > >>> > >>> I have a unit test that I want to run run setUp() and tearDown() code > >>> once > >>> for all of my tests. I use an inner class as a wrapper to do the job. it > >>> worked fine with eclipse but with mvn test I got error > >>> "junit.framework.AssertionFailedError: Class Order$OrderChargeTest has > >>> no > >>> public constructor TestCase(String name) or TestCase()" > >>> > >>> anybody as any idea? > >>> > >>> my code here: > >>> > >>> ... > >>> > >>> public class TestDataAccess extends TestCase { > >>> private static final Logger logger = LoggerFinder.getLogger(); > >>> protected static DataAccess dao = new DataAccess();; > >>> > >>> public TestDataAccess(String testName) { > >>> super(testName); > >>> // TODO Auto-generated constructor stub > >>> } > >>> > >>> public static class Wrapper extends TestSetup { > >>> public Wrapper(Test arg0) { > >>> super(arg0); > >>> // TODO Auto-generated constructor stub > >>> } > >>> public Wrapper(TestSuite suite){ > >>> super(suite); > >>> } > >>> public void setUp() throws Exception { > >>> prepareTestData(); > >>> } > >>> public void tearDown() throws Exception { > >>> destroyTestData(); > >>> } > >>> } > >>> > >>> public static Test suite() { > >>> TestSuite suite = new TestSuite(); > >>> suite.addTest(new TestDataAccess("testGetAdvertiser")); > >>> suite.addTest(new > >>> TestDataAccess("testGetAdvertiserIdByDfpId")); > >>> Wrapper wrapper = new Wrapper(suite); > >>> return wrapper; > >>> } > >>> > >>> public void testGetAdvertiser() throws Exception { > >>> int id = 100000; > >>> GorillaAdvertiser gAdvertiser = dao.getAdvertiser(id); > >>> assertEquals(100000, gAdvertiser.getId()); > >>> assertEquals("http://www.test.com", > >>> gAdvertiser.getUrl()); > >>> assertEquals("Test SF ID", > >>> gAdvertiser.getSalesforceObjectId()); > >>> assertEquals("Test Advertiser", gAdvertiser.getName()); > >>> } > >>> > >>> public void testGetAdvertiserIdByDfpId() throws Exception { > >>> int dfpId = 1397500; > >>> String id = dao.getAdvertiserIdByDfpId(dfpId); > >>> assertEquals("2", id); > >>> } > >>> > >>> private static void prepareTestData() throws Exception { > >>> logger.info("preparing data..."); > >>> dao.establishConnections(); > >>> prepareAdvertiser(); > >>> } > >>> > >>> private static void destroyTestData() throws Exception { > >>> logger.info("destroying data..."); > >>> destroyAdvertiser(); > >>> dao.closeConnections(); > >>> } > >>> > >>> private static void prepareAdvertiser() throws Exception { > >>> String sql = "insert into advertisers (id, name, url, > >>> dfp_id, > >>> salesforce_object_id) " > >>> + "values (100000, 'Test Advertiser', > >>> 'http://www.test.com', 100000, > >>> 'Test SF ID')"; > >>> PreparedStatement ps = > >>> dao.getAdOpsConn().prepareStatement(sql); > >>> ps.executeUpdate(); > >>> ps.close(); > >>> dao.getAdOpsConn().commit(); > >>> } > >>> > >>> private static void destroyAdvertiser() throws Exception { > >>> String sql = "delete from advertisers where id = > >>> 100000"; > >>> PreparedStatement ps = > >>> dao.getAdOpsConn().prepareStatement(sql); > >>> ps.executeUpdate(); > >>> ps.close(); > >>> dao.getAdOpsConn().commit(); > >>> } > >>> > >>> } > >>> > >>> error message: > >>> Running com.gorillanation.dartaip.TestDataAccess$Wrapper > >>> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.031 > >>> sec > >>> <<< FA > >>> ILURE! > >>> warning(junit.framework.TestSuite$1) Time elapsed: 0 sec <<< FAILURE! > >>> junit.framework.AssertionFailedError: Class > >>> com.gorillanation.dartaip.TestDataAc > >>> cess$Wrapper has no public constructor TestCase(String name) or > >>> TestCase() > >>> > >>> I searched the internet found this > >>> > >>> http://www.oreillynet.com/onjava/blog/2004/12/where_should_your_unit_tes > >>> ts_g.html > >>> > >>> I did exactly as suggested but didn't help. > >>> > >>> anybody any idea? > >>> > >>> > >>> > >>> -- > >>> View this message in context: > >>> http://www.nabble.com/A-unit-test-error-with-maven-tf4308575s177.html#a1 > >>> 2265586 > >>> Sent from the Maven - Users mailing list archive at Nabble.com. > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: [EMAIL PROTECTED] > >>> For additional commands, e-mail: [EMAIL PROTECTED] > >>> > >>> > >>> --------------------------------------------------------------------- > >>> To unsubscribe, e-mail: [EMAIL PROTECTED] > >>> For additional commands, e-mail: [EMAIL PROTECTED] > >>> > >>> > >>> > >>> > >> > >> > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > -- > View this message in context: > http://www.nabble.com/A-unit-test-error-with-maven-tf4308575s177.html#a12278173 > Sent from the Maven - Users mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]