1 package junit.tests.runner; 2 3 import java.io.File ; 4 import java.io.IOException ; 5 import java.io.InputStream ; 6 import java.io.OutputStream ; 7 import java.io.PrintStream ; 8 9 import junit.framework.TestCase; 10 import junit.framework.TestResult; 11 import junit.framework.TestSuite; 12 13 public class TextRunnerTest extends TestCase { 14 15 public void testFailure() throws Exception { 16 execTest("junit.tests.framework.Failure", false); 17 } 18 19 public void testSuccess() throws Exception { 20 execTest("junit.tests.framework.Success", true); 21 } 22 23 public void testError() throws Exception { 24 execTest("junit.tests.BogusDude", false); 25 } 26 27 void execTest(String testClass, boolean success) throws Exception { 28 String java= System.getProperty("java.home")+File.separator+"bin"+File.separator+"java"; 29 String cp= System.getProperty("java.class.path"); 30 String [] cmd= { java, "-classpath", cp, "junit.textui.TestRunner", testClass}; 32 Process p= Runtime.getRuntime().exec(cmd); 33 InputStream i= p.getInputStream(); 34 int b; 35 while((b= i.read()) != -1) 36 ; assertTrue((p.waitFor() == 0) == success); 38 if (success) 39 assertEquals(junit.textui.TestRunner.SUCCESS_EXIT, p.exitValue()); 40 else 41 assertEquals(junit.textui.TestRunner.FAILURE_EXIT, p.exitValue()); 42 } 43 44 public void testRunReturnsResult() { 45 PrintStream oldOut= System.out; 46 System.setOut(new PrintStream ( 47 new OutputStream () { 48 public void write(int arg0) throws IOException { 49 } 50 } 51 )); 52 try { 53 TestResult result= junit.textui.TestRunner.run(new TestSuite()); 54 assertTrue(result.wasSuccessful()); 55 } finally { 56 System.setOut(oldOut); 57 } 58 } 59 60 61 } | Popular Tags |