From: <csa...@co...> - 2005-02-21 10:15:07
|
Hello Timothy, I have a curious problem about TestRunner (ScriptFixture) and I don't understand it. So I have a TestRunner.java class like: import java.io.File; import junit.extensions.abbot.*; import junit.framework.Test; public class TestRunner extends ScriptFixture { public TestRunner(String name) { super(name); } public static Test suite() { return new ScriptTestSuite(TestRunner.class, ".") { public boolean accept(File file) { String name = file.getName(); return name.equals("script.xml"); } }; } public static void main(String[] args) { TestHelper.runTests(args, TestRunner.class); } } That is that runs the abbot script called script.xml in the current folder. And there is no problem at all with this! BUT! If I begin to use this class in a packaged context, some interesting things happen. 1) if the same file as above is run but with a package name of "com.contiteves.paradguitesting.application.runners", I get the following error-message: ( The script.xml file exists at the base directory of the java project that is where the "com" folder exists as well!) [java] .F [java] Time: 0 [java] There was 1 failure: [java] 1) warning(junit.framework.TestSuite$1)junit.framework.AssertionFail edError: No tests found in com.contiteves.paradguitesting.application.runners.Te stRunner [java] at junit.extensions.abbot.TestHelper.runTest(TestHelper.java:106 ) [java] at junit.extensions.abbot.TestHelper.runTests(TestHelper.java:12 6) [java] at com.contiteves.paradguitesting.application.runners.TestRunner .main(Unknown Source) [java] FAILURES!!! [java] Tests run: 1, Failures: 1, Errors: 0 [java] Java Result: -1 I get a solution for this with a line of "return new ScriptTestSuite(TestRunner.class, new String[] {"./script.xml"});" in the suite() method of my TestRunner file, but after this I get the following errormessage which I couldn't solve: [java] .E [java] Time: 0.31 [java] There was 1 error: [java] 1) D:\SoftwareTesting\ParAd\Abbot\Proggys\GUITesting2\packaged\.\scr ipt.xml(com.contiteves.paradguitesting.application.runners.TestRunner)java.lang. NoClassDefFoundError: org/jdom/JDOMException [java] at junit.extensions.abbot.ScriptFixture.setUp(ScriptFixture.java :39) [java] at junit.extensions.abbot.ScriptFixture.runBare(ScriptFixture.ja va:60) [java] at junit.extensions.abbot.TestHelper.runTest(TestHelper.java:106 ) [java] at junit.extensions.abbot.TestHelper.runTests(TestHelper.java:12 6) [java] at com.contiteves.paradguitesting.application.runners.TestRunner .main(Unknown Source) [java] FAILURES!!! [java] Tests run: 1, Failures: 0, Errors: 1 [java] Java Result: -1 Why does it work with a not packaged-context, and why doesn't it work in packaged context? Why do I get a JDOMException? Something is wrong with the path, classpath? As far as I think, all classpaths are set within an ant make-file. Many thanks for Your help in advance! Kind regards, Csaba Szucs |