ローカル テスト データベースの行に一定の Timestamp を書き込み、それを読み戻して、期待したものと比較する Java の単体テストがあります。これは、GMT タイムゾーンの下にあるローカル ラップトップで正常に動作します。
コードを継続的インテグレーション サーバーにコミットすると、テストは失敗し、時間差は -5 時間です。当社の統合サーバーは米国東海岸の AWS でホストされているため、これは当然のことです。しかし、それは問題を引き起こしています...
私のローカルMySQLサーバーがリモートサーバーと同じタイムゾーンを持つように変更する(そして私のチームのすべての開発者もそうするようにする)以外に、ハックしすぎずにコードでこの問題を修正する方法を誰か教えてもらえますか?
//Fetch actual table contents
IDataSet databaseDataSet = databaseTester.getConnection().createDataSet();
ITable actualTable = databaseDataSet.getTable("batch");
// Load expected data from an XML dataset
IDataSet expectedDataSet = new XmlDataSet(getClass().getResourceAsStream("/dbunit/expected_insert_batch.xml"));
ITable expectedTable = expectedDataSet.getTable("batch");
// Assert actual database table match expected table
Assertion.assertEquals(expectedTable, actualTable);
ありがとう、