我有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>
所以,我想实现以下目标之一:
下面是我当前的配置
我试图禁用控制台输出,但仍然存在问号错误..
的pom.xml:
mvn clean test -q -Dfile.encoding=UTF-8 1>log.txt 2>&1
命令行启动maven:
{{1}}