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

Reply via email to