2017-03-24 3 views
1

ながら東の言語の文字で失敗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が失敗する原因とこれを解決する方法は?ありがとう。

答えて

1

私はコマンドラインから実行すると、システムのデフォルトのエンコーディングをとっていると推測していますが、これはUTF-8ではない可能性があります。

これを試してみてください:作品

mvn test -DargLine="-Dfile.encoding=UTF-8" -Dtest=MyTestClassName 
+1

を。しかし、3つのプロパティがutf-8になっているので、なぜmvnがpom.xmlを読み込まないのですか?そして、なぜpom.xml utf-8の設定がうまくいかないのですか?彼らは異なる目的のために使用されていますか、なぜpom.xml utf-8の設定が機能しないのですか? – Tiina

+1

はいこれらのPOMプロパティは 'file.encoding'とは異なります。 'mvn test'で必要なことをする方法がありますので、この例(' '部分)を参照してください:https://github.com/intuit/karate#テストレポート –

関連する問題