David W. Van Couvering wrote:
I would have added this as a patch but as I understand it the JIRA comment mailer is down...

I applied this patch and everything builds fine, but I did notice that I got failures with the existing Junit tests when I ran them as .junit instead of .java.

Do the existing JUnit tests need to be modified somehow? Has this thread already been run and I just missed it?

Yes, they need to be modified to successfully run, since they depend on running some static methods to initialize some variables - otherwise they will give nullpointerexception.

I think I commented on that while uploading the patch.


I'm trying to find out how to validate if this patch actually works, any suggestions, since it doesn't appear to come with any junit tests that actually work with it. Any suggestions?


You could download the the tests in 934 and run them with this patch.
--Andreas


Thanks,

David

+ java org.apache.derbyTesting.functionTests.harness.RunTest junitTests/lang/Boo
leanTest.junit
*** Start: BooleanTest jdk1.4.2_07 2006-02-09 10:54:27 ***
0 add
 > .E
 > There was 1 error:
> 1) testBoolean(org.apache.derbyTesting.functionTests.tests.junitTests.lang.Boo
leanTest)java.lang.NullPointerException

*** Start: CompatibilityTest jdk1.4.2_07 2006-02-09 10:55:43 ***
0 add
 > .F
 > There was 1 failure:
> 1) warning(junit.framework.TestSuite$1)junit.framework.AssertionFailedError: N o tests found in org.apache.derbyTesting.functionTests.tests.junitTests.derbyNet
.CompatibilityTest
 > FAILURES!!!
 > Tests run: 1,  Failures: 1,  Errors: 0
Test Failed.

$ runtest.sh junitTests/lang/BooleanTest.java
+ java org.apache.derbyTesting.functionTests.harness.RunTest junitTests/lang/Boo
leanTest.java
*** Start: BooleanTest jdk1.4.2_07 2006-02-09 15:49:15 ***
*** End:   BooleanTest jdk1.4.2_07 2006-02-09 15:49:35 ***

$ runtest.sh junitTests/derbyNet/CompatibilityTest.java
+ java org.apache.derbyTesting.functionTests.harness.RunTest junitTests/derbyNet
/CompatibilityTest.java
*** Start: CompatibilityTest jdk1.4.2_07 2006-02-09 15:48:37 ***
0 add
 > java.sql.SQLException: No suitable driver
 > Exception in thread "main"
Test Failed.
*** End:   CompatibilityTest jdk1.4.2_07 2006-02-09 15:48:53 ***

Andreas Korneliussen (JIRA) wrote:

     [ http://issues.apache.org/jira/browse/DERBY-918?page=all ]

Andreas Korneliussen updated DERBY-918:
---------------------------------------

    Attachment:     (was: DERBY-918.diff)


introduce a new test type to run junit tests from the current harness
---------------------------------------------------------------------

        Key: DERBY-918
        URL: http://issues.apache.org/jira/browse/DERBY-918
    Project: Derby
       Type: Improvement
 Components: Test
Environment: All
   Reporter: Andreas Korneliussen
   Assignee: Andreas Korneliussen



It seems to me that for including a new JUnit test into i.e derby-all we need to make a new java class with a main() method, which parses a command line and set up the testsuite and run it, just like any java program. Basically we are running the junit tests as test type "java". Instead of having to do this for every junit test going into a derby test suite, I would propose a different strategy. I propose to introduce a new test type called "junit" (current test types are: sql,sql2,unit,java,multi,demo - unit is not junit)
Then you can use:
java org.apache.derbyTesting.functionTests.harness.RunTest <TestCaseClassName>.junit
to run a Junit test - instead of:
java org.apache.derbyTesting.functionTests.harness.RunTest <AnotherClassWithMainMethod>.java
When starting a test of type junit, the RunTest class may simply use the
junit.textui.TestRunner class, which has a main method which takes a TestCase class name as parameter. The junit.textui.TestRunner runs the tests defined by the suite() method of the TestCase class. I think this strategy will make it easier to integrate new JUnit tests into the current test suites, since it save you the trouble of creating a java class with a main method for every test.




Reply via email to