2016-05-24 13 views
0

Linuxプラットフォームで実行する予定のJUnitテストスイートを備えたJavaプロジェクトがあります。それは問題なくWindowsを使用して開発されています。IntelliJ JUnitテストランナーとLinux上のGradle JUnitテストランナーの相違点

Linuxでgradle testを使用してユニットテストスイートを実行すると、浮動小数点の違いが表示され始めます。 IntelliJテストランナーとGradleビルトインランナーの違いもあるようです。

JDKを使用:SunのJDK 1.8u91のx64

Running tests using 'gradle test' on Linux:    ERRORS (see below) 
Running tests using IntelliJ test runner on Linux:  OK 
Running tests using 'gradle test' on Windows:   OK 
Running tests using IntelliJ test runner on Windows: OK 

junit.framework.AssertionFailedError: expected:<-2.18> but was:<-2.1652631074322057> 
junit.framework.AssertionFailedError: expected:<1.11> but was:<1.1376954128942385> 
junit.framework.AssertionFailedError: expected:<373.32> but was:<375.4870142751794> 
+0

テスト対象のコードのサンプルコードスニペットを表示できますか?浮動小数点の問題を避けたい場合は、 'java.math.BigDecimal'を使うことをお勧めします –

答えて

0

をcritialセクションでは、次のとおりです。

final double amountInEUR = (amountInOtherCurrency - (quantity * commission)) * (closePrice * closePriceMultiplier); 

あなたが見ることができるように、それは金融アプリケーションです。実際にBigDecimalに関するいくつかの調査が始まりました。ランスJavaありがとう!

関連する問題