为什么我无法在TestNG中调试代码

时间:2019-04-16 10:53:45

标签: java debugging testng

我正在使用TestNG和Java运行自动化测试。

这是我的代码的一部分:

private void testConnection(String URL1) throws IOException {

    try {
        URL url = new URL(URL1);
        HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();
        urlConn.connect();

        assertEquals(HttpURLConnection.HTTP_OK, urlConn.getResponseCode());
    } catch (IOException e) {
        ConsoleLogger.error("*******************************");
        ConsoleLogger.error("Could NOT connect to the server");
        ConsoleLogger.error("Entire test is aborted!!!");
        ConsoleLogger.error("Please check port and IP again!");
        ConsoleLogger.error("*******************************");
        throw e;
    }
}

现在,我的测试失败了,因为我从URL中获取了一个异常。 我可以在控制台中看到错误消息。 在带有注释@BeforeSuite的方法中调用此方法。

为什么我不能调试此方法(不是try块也不是catch块)?

2 个答案:

答案 0 :(得分:4)

您已经提到IntelliJ不遵守您的断点,并且从您的代码中可以看到有对服务器的引用。如果您尝试进行远程调试,则可能会发生这种情况:

  

要在服务器上调试代码,必须将调试器附加到其调试端口。这意味着在调试模式下启动服务器,并在连接到正确端口的IntelliJ中创建远程调试运行配置(应在服务器初始化日志中报告该配置)。

有关更多信息,请阅读原始答案here

如果您不是远程调试人员,则可以尝试执行以下操作:

  • 使用文件清除缓存->使缓存无效/重新启动。
  • 删除整个项目文件夹,然后再次导入。
  • 重新安装IDE并删除所有配置。

我以为您出于某种原因正在IntelliJ中工作,但所有这些要点也应适用于其他程序。

答案 1 :(得分:1)

由于您可以打印出错误消息,因此绝对有机会进行调试。您可以尝试在该打印错误消息上设置断点。如果仍然失败。意味着您的工作区未使用您的代码进行更新。只需刷新或重新启动您的IDE。祝你好运。