I thought this is a common issue for unit testing. Nobody here had ever done this before?
Wayne Fay wrote: > > 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] > > > -- View this message in context: http://www.nabble.com/A-unit-test-error-with-maven-tf4308575s177.html#a12279504 Sent from the Maven - Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]