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]