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]

Reply via email to