Настройка кодировки для задачи jUnit в Ant - PullRequest
3 голосов
/ 07 июля 2011

У меня есть тестовый пример (это действительно интеграционный тест), который входит в систему с именем пользователя, содержащим скандинавские буквы. Проблема заключается в том, что когда я запускаю задачу Ant из командной строки, аутентификация завершается неудачно, потому что кодировка неверна (это должно быть UTF-8). Тест запускается нормально, когда я запускаю его из Eclipse, но не из командной строки. До сих пор я пытался сообщить правильную кодировку Ant обоим в цели Ant:

<target name="run_tests">
    <junit fork="no" haltonfailure="no">
        <jvmarg value="-Dfile.encoding=UTF-8"/>
        <formatter type="xml" usefile="true" />
        <classpath refid="test.classpath" />
        <test name="com.company.integration.AllIntegrationTests" />
    </junit>
</target>

и из командной строки:

ant -D"file.encoding=UTF-8" run_tests

Ни одна из этих работ. Что бы я ни делал, тесты все равно не пройдены, и в отчете говорится:

<property name="file.encoding" value="cp1252" />

Как я уже сказал, если я запускаю его из Eclipse, все работает прекрасно. Я также заметил, что если я изменю конфигурацию запуска в Eclipse для теста, изменив кодировку на ISO-8859-1, тест завершится неудачно, как и ожидалось. Очевидно, что можно изменить кодировку, но как вы это сделаете?

1 Ответ

5 голосов
/ 07 июля 2011

Вам нужно будет использовать fork=yes для выполнения JUnit в отдельной JVM.

Как таковое, file.encoding наследуется от JVM Ant и не переопределяется вашим jvmarg.

См. Документацию по jvmarg на странице руководства JUnit :

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...