Печать результата JUnit в файл - PullRequest
4 голосов
/ 09 декабря 2010

Я хочу напечатать результаты моих тестов 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();
    }
}

Вот мой пример теста:

public void test_001_AccountWorld1() {

    // Open the MS CRM form to be tested.
    driver.get(crmServerUrl + "account");
    nameOfIFRAME = "IFRAME_CapCRM";

    PerformCRM_World1("address1_name", "address1_name", "address1_line1", "address1_postalcode", true);

    assertEquals(firstLineFromForm.toString(), "");
    assertEquals(secondLineFromForm.toString(), "Donaustadtstrasse Bürohaus 1/2 . St");
    assertEquals(postcodeFromForm.toString(), "1220");       

}

Я пробовал p.append(), но не работает. Помогите пожалуйста.

Ответы [ 4 ]

2 голосов
/ 10 июня 2016

Как правило, вы можете перенаправить вывод в файл следующим образом:
- если вы используете затмение: Run configuration-->Commons-->OutputFile-->Your file name enter image description here

  • Если вы запускаете из командной строки, просто используйте: java ..... >output.txt
1 голос
/ 09 декабря 2010

Вы, вероятно, заново изобретаете колесо здесь. ANT , Maven , инструмент сборки X или ваш сервер CI должны сделать это за вас.

0 голосов
/ 10 июня 2016

Когда я пытаюсь это сделать, я запускаю командную строку с настраиваемым бегуном и запускаю собственный набор.Очень просто, почти нет кода.В наборе есть только тест, который вы хотите запустить, и бегун ниже. Вы можете увидеть логику распечатки.Мой код просто распечатывает ошибки, но вы можете легко адаптировать это, чтобы напечатать все в файл.По сути, вы просто смотрите в коллекции объектов результатов неудач и успехов.

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");
   }

}
0 голосов
/ 09 декабря 2010

Я считаю, что эта функциональность уже существует. Прочитайте эту часть FAQ JUnit.

...