Java 将JUnit结果打印到文件

Java 将JUnit结果打印到文件,java,junit,junit4,Java,Junit,Junit4,我想将JUnit测试的结果打印到.txt文件中 以下是我的代码: try { //Creates html header String breaks = "<html><center><p><h2>"+"Test Started on: "+df.format(date)+"</h2></p></center>"; //Creating two files for passing an

我想将JUnit测试的结果打印到
.txt
文件中

以下是我的代码:

try {
    //Creates html header 
    String breaks = "<html><center><p><h2>"+"Test Started on: "+df.format(date)+"</h2></p></center>";

    //Creating two files for passing and failing a test
    File pass = new File("Result_Passed-"+df.format(date)+ ".HTML");
    File failed = new File("Result_Failed-"+df.format(date)+ ".HTML");
    OutputStream fstreamF = new FileOutputStream(failed, true);
    OutputStream fstream = new FileOutputStream(pass, true);
    PrintStream p = new PrintStream(fstream);
    PrintStream  f= new PrintStream(fstreamF);

    //appending the html code to the two files
    p.append(breaks);
    f.append(breaks);

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我尝试了
p.append()
,但没有成功。请帮忙。

我相信这个功能已经存在了。阅读JUnit的常见问题。

你可能在这里发明了轮子,X构建工具或您的应用程序应该为您执行此操作。

通常,您可以将输出重定向到文件,如下所示:
-如果您使用的是eclipse:
运行配置-->公用-->输出文件-->您的文件名

  • 如果从命令行运行,只需使用:
    java….>output.txt

当我打算这样做时,我会在命令行中运行它,使用一个自定义运行程序,运行一个自定义套件。非常简单,几乎没有代码。套件中只有您想要运行的测试,运行程序在下面。。你可以看到打印出来的逻辑。我的代码只是打印出错误,但您可以很容易地将所有内容打印到文件中。实际上,您只是查看失败和成功的结果对象集合

public class UnitTestRunner {
static JUnitCore junitCore;
static Class<?> testClasses;



public static void main(String[] args) {   
    System.out.println("Running Junit Test Suite.");
     Result result = JUnitCore.runClasses(TestSuite.class);
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
      System.out.println("Successful: " + result.wasSuccessful() + 
        " ran " + result.getRunCount() +" tests");
   }

}
公共类UnitTestRunner{
静态JUnitCore-JUnitCore;
静态类testclass;
公共静态void main(字符串[]args){
System.out.println(“运行Junit测试套件”);
结果=JUnitCore.runClasses(TestSuite.class);
for(失败:result.getFailures()){
System.out.println(failure.toString());
}
System.out.println(“成功:”+result.wassuctive()+
“ran”+result.getRunCount()+“tests”);
}
}

问题是,我要让junit项目有一个可运行的jar,双击junitest.jar文件,它将打开并运行tests@Limpep为什么?这就是build/CI工具为您所做的。我可能还不熟悉java和junit测试。@Limpep这很酷:)。我已经修改了我的答案,以便将工具链接起来。我强烈建议您使用这些工具,而不是试图重新发明轮子。这些工具被认为是行业标准,所以现在学习它们很好。
public class UnitTestRunner {
static JUnitCore junitCore;
static Class<?> testClasses;



public static void main(String[] args) {   
    System.out.println("Running Junit Test Suite.");
     Result result = JUnitCore.runClasses(TestSuite.class);
      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }
      System.out.println("Successful: " + result.wasSuccessful() + 
        " ran " + result.getRunCount() +" tests");
   }

}