Подробные протоколы испытаний Гудзона - PullRequest
0 голосов
/ 11 января 2011

Есть ли способ заставить Хадсона дать мне более подробные результаты теста - например, я сравниваю две строки и хочу знать, чем они отличаются.Есть какой-либо способ сделать это?Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 12 января 2011

Hudson поддерживает JUnit напрямую. На странице конфигурации вашей работы ближе к концу должна быть опция «Опубликовать отчет о результатах тестирования JUnit».

Я не слишком знаком с самим JUnit, но думаю, что он производит (или имеет возможность производить) и помещает результаты в XML-файл. Вам просто нужно указать путь к XML-файлу (относительно рабочей области) в текстовом поле.

Как только вы это сделаете и создадите сборку, у вас будет подробный отчет на странице вашего проекта. После этого вы сможете просмотреть результаты каждого теста.

alt text

0 голосов
/ 12 января 2011

Вы не должны надеяться, что Хадсон предоставит подробную информацию, он просто показывает тестовые сообщения, сгенерированные junit.

Вы могли бы показать ожидаемую строку и фактическую строку при неудачном утверждении равенства между этими двумя строками.

Например,

protected void compareFiles(File newFile, String referenceLocation, boolean lineNumberMatters) {
    BufferedReader reader = null;
    BufferedReader referenceReader = null;
    List<String> expectedLines = new ArrayList<String>();
    try {
        referenceReader = new BufferedReader(new InputStreamReader(FileLocator.openStream(Activator.getDefault().getBundle(), new Path("data/regression/" + referenceLocation), false)));  //$NON-NLS-1$
        expectedLines = getLinesFromReader(referenceReader);
    } catch (Exception e) {
        assertFalse("Exception occured during reading reference data: " + e, true); //$NON-NLS-1$
    }
    List<String>foundLines = new ArrayList<String>();
    try {
        reader = new BufferedReader(new FileReader(newFile));
        foundLines = getLinesFromReader(reader);
    } catch (Exception e) {
        assertFalse("Exception occured during reading file: " + e, true); //$NON-NLS-1$
    }
    boolean throwException = expectedLines.size() != foundLines.size();
    if (throwException) {
        StringBuffer buffer = new StringBuffer("\n" + newFile.toString()); //$NON-NLS-1$
        for (String line: foundLines)
            buffer.append(line + "\n"); //$NON-NLS-1$
        assertEquals("The number of lines in the reference(" + referenceLocation + ") and new output(" + newFile.getAbsolutePath()+ ") did not match!" + buffer, expectedLines.size(), foundLines.size()); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
    }
    if (!lineNumberMatters) {
        Collections.sort(expectedLines);
        Collections.sort(foundLines);
    }
    /** Either the line matches character by character or it matches regex-wise, in that order */
    for (int i=0;i<expectedLines.size(); i++)
        assertTrue("Found errors in file (" + newFile + ")! " + foundLines.get(i) + " vs. " + expectedLines.get(i), foundLines.get(i).equals(expectedLines.get(i)) || foundLines.get(i).matches(expectedLines.get(i))); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...