java - Eclipse 有没有办法以与 unix (TeamCity) 构建主机相同的方式运行 Java 单元测试?org.junit.ComparisonFailure 问题
问题描述
我有一个奇怪的问题,我可以通过 TeamCity 构建我们的代码库而不会出现任何问题。另一方面,当我通过 Eclipse 触发构建时,我得到 org.junit.ComparisonFailure。
失败的代码如下:
@Test
public void prettyPrintTest() throws BunchOfExceptions {
InputStream formattedXml = DomUtilsTest.class.getResourceAsStream("/path/to/sample/file/formattedOutput.xml");
InputStream notFormattedXml = DomUtilsTest.class.getResourceAsStream("/path/to/sample/file/notFormattedInput.xml");
DocumentBuilder builder = ClassBeingTested.getDocumentBuilderFactory().newDocumentBuilder();
Document notFormattedDocument = builder.parse(notFormattedXml);
String prettyPrintedXmlContent = ClassBeingTested.prettyPrint(notFormattedDocument);
Assert.assertEquals(IOUtils.toString(formattedXml), prettyPrintedXmlContent);
}
TeamCity 上的单元测试很好,我同事的 IntelliJ 上也很好(他编写了这段代码)。但我在我的机器上收到以下错误:
org.junit.ComparisonFailure:
expected:<<message>[
<header>
<messagetype>HelloWorld</messagetype>
</header>
<body>
<messageBody>HolaComoEstas!</messageBody>
</body>
</message>
]
> but was:<<message>[
<header>
<messagetype>HelloWorld</messagetype>
</header>
<body>
<messageBody>HolaComoEstas!</messageBody>
</body>
</message>
]
知道如何配置 Eclipse 以与 TeamCity Unix 主机相同的方式运行它吗?或者有没有办法让这个单元测试平台独立?
解决方案
我可以通过打开 git bash 来解决这个问题,转到格式化的 XML 文件的路径(例如 C:/path/to/sample/file/formattedOutput.xml),然后执行 dos2unix 为:
dos2unix.exe ./formattedOutput.xml
所以看起来Mark Rotteveel在上面的评论中是正确的。
谢谢
推荐阅读
- sql - Oracle SQL Developer:插入值作为从另一个 sql 文件中选择
- c - 如何在c中计算堆栈使用率和执行时间
- c# - 异步流在线json信息
- javascript - 在 ng-repeat 中验证输入
- python-3.x - 无法在 Pycharm 上安装 pygame
- github-actions - 从 github 操作 CICD 管道将 docker 映像发布到 jfrog 工件
- aws-lambda - 如何将自定义域指向 netlify 函数?
- javascript - React Page 无法单独在 FireFox 中正确呈现
- python - 在 Python 中选择并复制多种不同的文件类型
- ada - 确保编译时的异常覆盖