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: [email protected]
>>> 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]