java - e JUnit 测试是否有可能判断它是否在 Eclipse 中运行(而不是 ant)

标签 java xml eclipse ant junit

我有一个测试,将一大块预期的 XML 与实际收到的 XML 进行比较。如果 XML 明显不同,则将实际的 XML 写入磁盘进行分析并且测试失败。

我更愿意使用 assertEquals,这样我可以在 Eclipse 中更轻松地比较 XML - 但这可能会导致非常大的 JUnit 和 CruiseControl 日志。

有没有一种方法可以根据它是通过 Eclipse 还是通过 Ant 运行来更改 JUnit 测试行为。

最佳答案

这里有 2 个解决方案。

使用系统属性

boolean isEclipse() {
    return System.getProperty("java.class.path").contains("eclipse");
}

使用堆栈跟踪

boolean isEclipse() {
    Throwable t = new Throwable();
    StackTraceElement[] trace = t.getStackTrace();
    return trace[trace.length - 1].getClassName().startsWith("org.eclipse");
}

关于java - e JUnit 测试是否有可能判断它是否在 Eclipse 中运行(而不是 ant),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4375602/

相关文章:

java - 由于 doOutput 无法写入 URLConnection

javascript - Mootools:getElement 方法在 XML AJAX 响应中不可用

xml - XPath:选择一个节点而不获取其子节点

android - 如何在 Android 错误中允许 SSL URL(无对等证书)

java - 如何删除自定义按钮边框上的 "stretch marks"?

java - Pattern.COMMENTS 总是导致 Matcher.find 失败

python - Pydev 调试器 : Unable to find module to reload

c - 在 mac 上使用 gdb 在 eclipse 中调试 - 无法执行 MI 命令 : -exec-run

java - 从 Java 程序将数据插入数据库时​​出错

java - Java 中的 XSD 设计问题