我正在为我的Hibernate DAO实现编写测试,因为我解释了here,当我使用Maven或带有Run as -> Maven test
的Eclipse执行它们时它们运行良好。该应用程序使用Oracle,因此我必须定义TimeZone,并且我将Duser.timezone
添加到pom文件中,如here所述。
问题是当我只想执行一个测试方法时,因为每个方法在Eclipse上都有自己的运行配置,并且将时区添加到每个配置的VM参数中是令人失望的。
我已尝试将System.setProperty("user.timezone", "UTC")
和TimeZone.setDefault(new SimpleTimeZone(...))
添加到@beforeClass
方法,但它不起作用。它显示错误ORA-01882: timezone region not found
。我认为原因是@ContextConfiguration
在@beforeClass
方法之前连接到数据库。
我找到了一种解决方法,即将其作为默认参数添加到VM。我是在Windows -> Preferences -> Installed JREs
完成的。
你知道更好的方法吗?
答案 0 :(得分:0)
好吧,如果你对使用数据库干预的@Configuration类是正确的,那么选择是在@Configuration类的静态块中执行System.setProperty。