我在这里用DBUnit测试遇到了一个有趣的问题。
我们使用DBUnit测试和xml数据集测试了一些代码。我的测试结果与平台之间完全相同的数据集和代码文件不一致,因此我决定遵循这条路径,因为我将重构DB Access类的一部分。
我遇到的问题如下:
在Maven运行测试的一个平台(Linux服务器)上,它们都没问题,但是在我的带有Windows的PC上,记录是从数据库(数据集)中以不同的顺序提取的,所以当我得到错误时测试验证记录的顺序。
所以,我知道修改数据集会让我的测试在两边变成绿色,但是如果有人在其中一个记录中写了这个没有日期列的数据集,他可能已经知道一些业务规则我不是意识到这一点,所以我真的没有修改这个场景,因为它可能会导致未来出现问题。
在寻找答案后,我正在修改这个问题。我正在寻找的答案,我如何让H2数据库与不同平台上的空日期保持一致。我必须设置什么参数才能在不触及查询的情况下为整个数据库获取NULLS FIRST或NULLS LAST?
非常感谢和问候。
答案 0 :(得分:1)
那么,
我正在回答我自己的问题,因为我找到了答案,更好的后续工作会很好,但我认为这很有道理。
我按照此页面上的说明操作:
http://www.h2database.com/javadoc/org/h2/constant/SysProperties.html
在加载驱动程序之前,在运行时设置sortNullsHigh属性:
System.setProperty(“h2.sortNullsHigh”,“true”);
也许稍后我们会看到一种方法将它放入配置文件中,在使用jenkins / maven运行所有中央单元测试之后,属性设置正确。
此致