我有Java的单元测试,它向本地测试数据库中的一行写入一个常量Timestamp,并将其读回并将其与我的预期进行比较。这适用于GMT时区下的本地笔记本电脑。处理本地和远程数据库TimeZone差异的测试
当我将代码提交给我们的持续集成服务器时,测试失败,时间差异为-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);
感谢,
你应该详细说明你如何比较时间戳,作为整数?作为字符串? – Guillaume 2010-12-14 11:56:46
是的,请显示单元测试的详细信息:) – 2010-12-14 11:59:04
时间戳比较由DBUnit完成 – Scruffers 2010-12-14 11:59:12