You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by flyingtiger <ke...@gorillanation.com> on 2007/08/22 01:59:20 UTC

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_tests_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#a12265586
Sent from the Maven - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: A unit test error with maven

Posted by flyingtiger <ke...@gorillanation.com>.
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 <ke...@gorillanation.com> 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:kevin.du@gorillanation.com]
>> >>> 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: users-unsubscribe@maven.apache.org
>> >>> For additional commands, e-mail: users-help@maven.apache.org
>> >>>
>> >>>
>> >>> ---------------------------------------------------------------------
>> >>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> >>> For additional commands, e-mail: users-help@maven.apache.org
>> >>>
>> >>>
>> >>>
>> >>>
>> >>
>> >>
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> > For additional commands, e-mail: users-help@maven.apache.org
>> >
>> >
>> >
>>
>> --
>> 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: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 
> 

-- 
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: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: A unit test error with maven

Posted by Wayne Fay <wa...@gmail.com>.
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 <ke...@gorillanation.com> 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:kevin.du@gorillanation.com]
> >>> 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: users-unsubscribe@maven.apache.org
> >>> For additional commands, e-mail: users-help@maven.apache.org
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> >>> For additional commands, e-mail: users-help@maven.apache.org
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
> >
>
> --
> 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: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: A unit test error with maven

Posted by flyingtiger <ke...@gorillanation.com>.
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:kevin.du@gorillanation.com] 
>>> 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: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>>
>>>
>>>
>>>     
>>
>>   
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 
> 

-- 
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: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


Re: A unit test error with maven

Posted by Nathaniel Stoddard <na...@gmail.com>.
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:kevin.du@gorillanation.com] 
>> 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: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
>>
>>     
>
>   


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: A unit test error with maven

Posted by flyingtiger <ke...@gorillanation.com>.
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:kevin.du@gorillanation.com] 
> 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: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 
> 
> 

-- 
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: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


RE: A unit test error with maven

Posted by Bryan Loofbourrow <br...@qpass.com>.
>> 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:kevin.du@gorillanation.com] 
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: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org