Иногда Funcunit генерирует недопустимые файлы XML
Использование опции ouput для генерации xml-файла с результатами теста иногда создает испорченные xml-файлы. Команда, которую я использую для генерации результатов xml:
./js funcunit/open/phantomjs myapp/myapp_test.html -out myapp/docs/funcunit.xml
Проблемы связаны с недопустимым тегом "testcase" внутри записи "testsuite"(s) во время процесса. Все тесты выполняются, но иногда в процесс отчета добавляется только закрывающий тег "", это нарушает мою сборку при запуске с нашим CI-сервером (плагин jenkings + xunit). Проблема появляется случайно! Содержимое тестового скрипта выглядит примерно так:
steal('funcunit')
// test modules
.then('myapp/modules/expression/builder/builder_test.js')
.then('myapp/modules/expression/factory/factory_test.js')
.then('myapp/modules/expression/variable_selector/variable_selector_test.js')
// etc ...
Все тесты пройдены, нет ошибок внутри них, нет исключений Java, нет ничего плохого, кроме поврежденных XML-файлов.
Моя среда:
- Ubuntu 12.04 64bit (протестировано даже с 13.04 64bit)
- PhantomJS 1.9.1 (для 64-битной платформы)
- Дженкинс 1.505
- XUnit 1.6.1
Любое решение?
1 ответ
Что ж, учитывая предоставленные детали, это может быть одной из следующих проблем:
- Во входных данных есть управляющие символы, что приводит к неверному XML
- JVM не хватило памяти
- JVM не хватило места на диске
- В JVM закончились процессы
Так как это происходит только периодически, это, вероятно, утечка памяти. Удачи в охоте.
Рекомендации