maven:禁用surefire控制台错误(或修复控制台错误编码)

时间:2018-06-14 11:27:24

标签: maven maven-surefire-plugin

我有maven项目,只运行一些基于groovy的测试

它有西里尔语测试用例名称和断言文本

因此,使用西里尔字符以UTF-8编码正确生成了万无一失的报告<?xml version="1.0" encoding="UTF-8"?> ... <testcase name="get connections" classname="dbtest.DBSourceTest$1" time="0.301"/> <testcase name="заповнення тарифів" classname="dbtest.DBSourceTest$1" time="0.269"> <failure message="_1C.firstRow(sql).count_fail==0 По кожній культурі ..." type="Assertion failed"> <![CDATA[Assertion failed: assert _1C.firstRow(sql).count_fail==0 | | | | | | | | 303 false | | /* | | для всех: | | По кожній культурі ... - 正如预期的那样

?

但是在控制台中我看到问号UTF-8而不是西里尔字符,因为测试期间发生了所有异常,即使我指定编码[ERROR] Failures: [ERROR] ?????????? ??????? assert _1C.firstRow(sql).count_fail==0 | | | | | | | | 303 false | | /* | | ??? ????: | | ?? ?????? ???????? ... 我知道。

2.21.0

我尝试了不同的版本

surefire插件2.12.4将带有问号的所有Cyrillic打印到控制台

surefire插件test: .\sql\checksource\AB-01-заповнення тарифів.sql ... Tests run: 15, Failures: 9, Errors: 0, Skipped: 0, Time elapsed: 1.772 sec <<< FAILURE! Assertion failed: assert _1C.firstRow(sql).count_fail==0 | | | | | | | | 303 false | | /* | | ??? ????: 正确打印测试摘要但是带有问号的断言失败

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>dbtest</groupId>
    <artifactId>dbtest</artifactId>
    <name>dbtest project</name>
    <version>1.0</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <dependencies>
        ...
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.21.0</version>
                <configuration>
                    <printSummary>false</printSummary>
                    <trimStackTrace>false</trimStackTrace>
                    <argLine>-Dfile.encoding=UTF-8</argLine>
                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
                </configuration>
            </plugin>
            ...
        </plugins>
    </build>

</project>

所以,我想实现以下目标之一:

  • 禁用失败的断言输出到控制台
  • 将失败断言的控制台输出编码修复为UTF-8

下面是我当前的配置

我试图禁用控制台输出,但仍然存在问号错误..

的pom.xml:

mvn clean test -q -Dfile.encoding=UTF-8 1>log.txt 2>&1

命令行启动maven:

{{1}}

0 个答案:

没有答案