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]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/A-unit-test-error-with-maven-tf4308575s177.html#a12266127
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to