gfysg 2024-03-25 20:47 采纳率: 0%
浏览 14

idea+java+testNg执行完用例,控制台右侧,只显示套件名称,不显示用例

idea+java+testng,使用xml执行完用例,控制台左侧,只有一个套件名称,没有其他的东西,但用例确实是执行完成了,右侧有执行的case,如果用例执行失败,左侧能显示失败的用例

  • 写回答

2条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-03-25 20:47
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题描述: 在使用idea+java+testng执行用例时,使用xml文件来执行完用例后,左侧控制台只有一个套件名称,没有其他的信息显示。但用例确实是执行完成了,右侧有执行的case。如果用例执行失败,左侧能够显示失败的用例。 解决方案: 1.配置testng.xml文件 在使用testng执行用例时,需要配置testng.xml文件,将需要执行的测试类或测试包添加到suites标签中。例如:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
    <suite name="TestSuiteName" verbose="1">
        <test name="TestCaseName">
            <classes>
                <class name="com.example.testcase.TestClass1" />
                <class name="com.example.testcase.TestClass2" />
            </classes>
        </test>
    </suite>
    

    2.使用testng.xml文件执行用例 在idea中,使用testng.xml文件执行用例,需要进行如下设置: - 点击Run选项卡,选择Edit Configurations。 - 在左侧菜单中选择TestNG。 - 在右侧配置页面中,选择testng.xml文件。 - 点击Apply,然后点击OK。 执行用例时,控制台左侧只有一个套件名称,没有其他的信息显示。但是右侧有执行的case,并且在执行用例过程中会一直输出执行日志。 3.添加Listener 使用testng执行用例时,可以添加Listener来监听用例执行时的各种事件,例如用例执行成功、失败、跳过等。在Listener中可以添加对应的操作,例如输出日志、截图等。 在idea中,添加Listener的方式如下: - 在testng.xml文件中添加Listener的全类名。例如:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
    <suite name="TestSuiteName" verbose="1">
        <listeners>
            <listener class-name="com.example.listener.TestListener" />
        </listeners>
        <test name="TestCaseName">
            <classes>
                <class name="com.example.testcase.TestClass1" />
                <class name="com.example.testcase.TestClass2" />
            </classes>
        </test>
    </suite>
    
    • 创建Listener类,并实现对应的接口。例如:
    public class TestListener implements ITestListener {
        @Override
        public void onTestStart(ITestResult result) {
            //用例执行开始时的操作
        }
        @Override
        public void onTestSuccess(ITestResult result) {
            //用例执行成功时的操作
        }
        @Override
        public void onTestFailure(ITestResult result) {
            //用例执行失败时的操作
        }
        @Override
        public void onTestSkipped(ITestResult result) {
            //用例跳过时的操作
        }
    }
    

    通过添加Listener,并在Listener中实现对应的操作,可以在控制台左侧输出更详细的用例执行信息,例如用例执行失败的原因等。 示例代码: testng.xml文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
    <suite name="TestSuiteName" verbose="1">
        <listeners>
            <listener class-name="com.example.listener.TestListener" />
        </listeners>
        <test name="TestCaseName">
            <classes>
                <class name="com.example.testcase.TestClass1" />
                <class name="com.example.testcase.TestClass2" />
            </classes>
        </test>
    </suite>
    

    TestListener类:

    public class TestListener implements ITestListener {
        @Override
        public void onTestStart(ITestResult result) {
            log("Test Start: " + result.getMethod().getMethodName());
        }
        @Override
        public void onTestSuccess(ITestResult result) {
            log("Test Success: " + result.getMethod().getMethodName());
        }
        @Override
        public void onTestFailure(ITestResult result) {
            log("Test Failure: " + result.getMethod().getMethodName() + ", Cause: " + result.getThrowable().getMessage());
        }
        @Override
        public void onTestSkipped(ITestResult result) {
            log("Test Skipped: " + result.getMethod().getMethodName() + ", Reason: " + result.getThrowable().getMessage());
        }
        /**
         * 打印日志
         */
        private void log(String message) {
            System.out.println("[TestNG] " + message);
        }
    }
    
    评论

报告相同问题?

问题事件

  • 修改了问题 3月25日
  • 创建了问题 3月25日