Как установить дополнительный Java Logger FileHandler в Задаче Ant JUnit? - PullRequest
2 голосов
/ 17 ноября 2011

У меня есть небольшая странная задача.Дан следующий (раздетый) код (но я не могу его изменить / улучшить):

public class CustomTestClass {

    /**
     * Logger.
     */
    private Logger logger = Logger.getLogger("com.custom.testing");

    @Test
    public void simpleTestCaseOne(){
        logger.warning("simpleTestCaseOne: Not yet implemented!");
        assertTrue(true);
    }

    @Test
    public void simpleTestCaseTwo(){
        logger.warning("simpleTestCaseTwo: Not yet implemented!");
        assertTrue(true);
    }
}



Сейчас я использую следующий Ant-код для запуска тестов:

<target name="Junit_Test" 
        depends="compile.test" description="Custom TestCase Runner">
        <junit printsummary="yes" haltonfailure="no" fork="yes">
            <jvmarg value="-Djava.util.logging.config.file=res/logging.properties" />
            <classpath>
                <path refid="tests.class.path" />
                <fileset dir="${src.tests}">
                    <include name="**/*Test*.java"/>
                </fileset>
            </classpath>
            <test name="com.custom.testing.CustomTestClass" 
                haltonfailure="no" 
                todir="${reports.tests}/xml"
                methods="simpleTestCaseOne" >
                   <formatter type="xml" />
            </test>
        </junit>
    </target>

Файл logging.properties просто определяет ConsoleHandler , FileHandler и выходной файл для регистратора TestClass.

Когда я запускаю сценарий ant,на самом деле он работает нормально, но мне нужно несколько раз перезапускать тесты и каждый раз менять файл вывода для FileHandler .

Можно ли добавить / изменить FileHandler для указанногоРегистратор без изменения кода ?

1 Ответ

0 голосов
/ 17 ноября 2011

Мне это не особо нравится, но ...

Вы можете создать файл конфигурации регистрации со сменным токеном в значении свойства java.util.logging.FileHandler.pattern, например,

java.util.logging.FileHandler.pattern=%h/logs/@LOGFILE@.log

Тогда вы могли бы использовать задачу Ant с набором фильтров для замены токена, например,

<copy file="res/logging_tmp.properties" toFile="res/logging.properties" force="true">
  <filterset>
    <filter token="LOGFILE" value="your_value"/>
  </filterset>
</copy>

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

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