ながら東の言語の文字で失敗Mavenのテストでは、これはテストクラスがあるIDEA成功
@RequestMapping("list")
public String list(Model model) {
userService.findByName("[An Eastern character]")
}
そしてUserService
クラス:
User findByName(String name) {
return userRepository.findByName(name); // name is in Eastern language.
}
これは関連するデータですut_user_init.sql
INSERT INTO `user` VALUES ('32', '[The Eastern character]');
これはpom.xml
効果的です:
<maven.compiler.encoding>utf-8</maven.compiler.encoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
今、奇妙なことがある:私はIDEAを使用する場合は、サービスクラスが発見した結果を返しますが、私はmvn test -Dtest=path.to.TestClass
を使用している場合、それは失敗し、リターンがnullであるため、 。しかし、userRepository.findAll().size()
の結果を印刷すると、sqlファイルにリストされている正しいレコード数が印刷されていることがわかります。また、両方のMinGW(Windowsでは東部言語のGDBを使用し、ソースファイルはUTF-8です)でuserRepository.findOne(32L)
の印刷結果を試しました.Linuxはname
のランダムコードを出力します。 IDEAにはこの問題はありませんが、結果は返され、そのまま東方文字が印刷されます。なぜmvnとIDEAの動作が異なっているのか、mvnが失敗する原因とこれを解決する方法は?ありがとう。
を。しかし、3つのプロパティがutf-8になっているので、なぜmvnがpom.xmlを読み込まないのですか?そして、なぜpom.xml utf-8の設定がうまくいかないのですか?彼らは異なる目的のために使用されていますか、なぜpom.xml utf-8の設定が機能しないのですか? – Tiina
はいこれらのPOMプロパティは 'file.encoding'とは異なります。 'mvn test'で必要なことをする方法がありますので、この例(' '部分)を参照してください:https://github.com/intuit/karate#テストレポート –