Java Code Examples for com.aventstack.extentreports.ExtentTest#assignCategory()

The following examples show how to use com.aventstack.extentreports.ExtentTest#assignCategory() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: MyExtentTestNgFormatter.java    From Java-API-Test-Examples with Apache License 2.0 6 votes vote down vote up
public void afterInvocation(IInvokedMethod iInvokedMethod, ITestResult iTestResult) {
    if (iInvokedMethod.isTestMethod()) {
        ExtentTest test = (ExtentTest) iTestResult.getAttribute("test");
        List<String> logs = Reporter.getOutput(iTestResult);
        for (String log : logs) {
            test.info(log);
        }

        int status = iTestResult.getStatus();
        if (ITestResult.SUCCESS == status) {
            test.pass("Passed");
        } else if (ITestResult.FAILURE == status) {
            test.fail(iTestResult.getThrowable());
        } else {
            test.skip("Skipped");
        }

        for (String group : iInvokedMethod.getTestMethod().getGroups()) {
            test.assignCategory(group);
        }
    }
}
 
Example 2
Source File: MyExtentTestNgFormatter.java    From Java-API-Test-Examples with Apache License 2.0 6 votes vote down vote up
public void afterInvocation(IInvokedMethod iInvokedMethod, ITestResult iTestResult) {
    if (iInvokedMethod.isTestMethod()) {
        ExtentTest test = (ExtentTest) iTestResult.getAttribute("test");
        List<String> logs = Reporter.getOutput(iTestResult);
        for (String log : logs) {
            test.info(log);
        }

        int status = iTestResult.getStatus();
        if (ITestResult.SUCCESS == status) {
            test.pass("Passed");
        } else if (ITestResult.FAILURE == status) {
            test.fail(iTestResult.getThrowable());
        } else {
            test.skip("Skipped");
        }

        for (String group : iInvokedMethod.getTestMethod().getGroups()) {
            test.assignCategory(group);
        }
    }
}
 
Example 3
Source File: MyExtentTestNgFormatter.java    From TestHub with MIT License 6 votes vote down vote up
public void afterInvocation(IInvokedMethod iInvokedMethod, ITestResult iTestResult) {
    if (iInvokedMethod.isTestMethod()) {
        ExtentTest test = (ExtentTest) iTestResult.getAttribute("test");
        List<String> logs = Reporter.getOutput(iTestResult);
        for (String log : logs) {
            test.info(log);
        }

        int status = iTestResult.getStatus();
        if (ITestResult.SUCCESS == status) {
            test.pass("Passed");
        } else if (ITestResult.FAILURE == status) {
            test.fail(iTestResult.getThrowable());
        } else {
            test.skip("Skipped");
        }

        for (String group : iInvokedMethod.getTestMethod().getGroups()) {
            test.assignCategory(group);
        }
    }
}
 
Example 4
Source File: ExtentTestCommons.java    From extentreports-testng-adapter with Apache License 2.0 6 votes vote down vote up
public static void assignGroups(ExtentTest test, String[] groups) {
    if (groups.length > 0) {
        for (String g : groups) {
            if (g.startsWith("d:") || g.startsWith("device:")) {
                String d = g.replace("d:", "").replace("device:", "");
                test.assignDevice(d);
            } else if (g.startsWith("a:") || g.startsWith("author:")) {
                String a = g.replace("a:", "").replace("author:", "");
                test.assignAuthor(a);
            } else if (g.startsWith("t:") || g.startsWith("tag:")) {
                String t = g.replace("t:", "").replace("tag:", "");
                test.assignCategory(t);
            } else {
                test.assignCategory(g);
            }
        }
    }
}
 
Example 5
Source File: ReportEntityTest.java    From extentreports-java with Apache License 2.0 5 votes vote down vote up
@org.testng.annotations.Test
public void categoryCtx() {
    ExtentReports extent = extent();
    ExtentTest test = extent.createTest("Test");
    NamedAttributeContextManager<Category> context = extent.getReport().getCategoryCtx();
    Assert.assertFalse(context.hasItems());
    test.assignCategory("x");
    Assert.assertTrue(context.hasItems());
    Assert.assertTrue(context.getSet().stream().anyMatch(x -> x.getAttr().getName().equals("x")));
    Assert.assertTrue(context.getSet().stream().anyMatch(x -> x.getTestList().size() == 1));
    Assert.assertTrue(context.getSet().stream()
            .flatMap(x -> x.getTestList().stream())
            .anyMatch(x -> x.getName().equals("Test")));
}
 
Example 6
Source File: ExtentTestNGIReporterListenerOld.java    From Java-API-Test-Examples with Apache License 2.0 4 votes vote down vote up
@Override
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
        init();
        boolean createSuiteNode = false;
        if(suites.size()>1){
            createSuiteNode=true;
        }
        for (ISuite suite : suites) {
            Map<String, ISuiteResult> result = suite.getResults();
            //如果suite里面没有任何用例,直接跳过,不在报告里生成
            if(result.size()==0){
                continue;
            }
            //统计suite下的成功、失败、跳过的总用例数
            int suiteFailSize=0;
            int suitePassSize=0;
            int suiteSkipSize=0;
            ExtentTest suiteTest=null;
            //存在多个suite的情况下,在报告中将同一个一个suite的测试结果归为一类,创建一级节点。
            if(createSuiteNode){
                suiteTest = extent.createTest(suite.getName()).assignCategory(suite.getName());
            }
            boolean createSuiteResultNode = false;
            if(result.size()>1){
                createSuiteResultNode=true;
            }
            for (ISuiteResult r : result.values()) {
                ExtentTest resultNode;
                ITestContext context = r.getTestContext();
                if(createSuiteResultNode){
                    //没有创建suite的情况下,将在SuiteResult的创建为一级节点,否则创建为suite的一个子节点。
                    if( null == suiteTest){
                        resultNode = extent.createTest(r.getTestContext().getName());
                    }else{
                        resultNode = suiteTest.createNode(r.getTestContext().getName());
                    }
                }else{
                    resultNode = suiteTest;
                }
                if(resultNode != null){
                    resultNode.getModel().setName(suite.getName()+" : "+r.getTestContext().getName());
                    if(resultNode.getModel().hasCategory()){
                        resultNode.assignCategory(r.getTestContext().getName());
                    }else{
                        resultNode.assignCategory(suite.getName(),r.getTestContext().getName());
                    }
                    resultNode.getModel().setStartTime(r.getTestContext().getStartDate());
                    resultNode.getModel().setEndTime(r.getTestContext().getEndDate());
                    //统计SuiteResult下的数据
                    int passSize = r.getTestContext().getPassedTests().size();
                    int failSize = r.getTestContext().getFailedTests().size();
                    int skipSize = r.getTestContext().getSkippedTests().size();
                    suitePassSize += passSize;
                    suiteFailSize += failSize;
                    suiteSkipSize += skipSize;
                    if(failSize>0){
                        resultNode.getModel().setStatus(Status.FAIL);
                    }
                    resultNode.getModel().setDescription(String.format("Pass: %s ; Fail: %s ; Skip: %s ;",passSize,failSize,skipSize));
                }
                buildTestNodes(resultNode,context.getFailedTests(), Status.FAIL);
                buildTestNodes(resultNode,context.getSkippedTests(), Status.SKIP);
                buildTestNodes(resultNode,context.getPassedTests(), Status.PASS);
            }
            if(suiteTest!= null){
                suiteTest.getModel().setDescription(String.format("Pass: %s ; Fail: %s ; Skip: %s ;",suitePassSize,suiteFailSize,suiteSkipSize));
                if(suiteFailSize>0){
                    suiteTest.getModel().setStatus(Status.FAIL);
                }
            }

        }
//        for (String s : Reporter.getOutput()) {
//            extent.setTestRunnerOutput(s);
//        }

        extent.flush();
    }
 
Example 7
Source File: ExtentTestNGIReporterListenerOld.java    From Java-API-Test-Examples with Apache License 2.0 4 votes vote down vote up
private void buildTestNodes(ExtentTest extenttest, IResultMap tests, Status status) {
    //存在父节点时,获取父节点的标签
    String[] categories=new String[0];
    if(extenttest != null ){
        List<TestAttribute> categoryList = extenttest.getModel().getCategoryContext().getAll();
        categories = new String[categoryList.size()];
        for(int index=0;index<categoryList.size();index++){
            categories[index] = categoryList.get(index).getName();
        }
    }

    ExtentTest test;

    if (tests.size() > 0) {
        //调整用例排序,按时间排序
        Set<ITestResult> treeSet = new TreeSet<ITestResult>(new Comparator<ITestResult>() {
            @Override
            public int compare(ITestResult o1, ITestResult o2) {
                return o1.getStartMillis()<o2.getStartMillis()?-1:1;
            }
        });
        treeSet.addAll(tests.getAllResults());
        for (ITestResult result : treeSet) {
            Object[] parameters = result.getParameters();
            String name="";
            //如果有参数,则使用参数的toString组合代替报告中的name
            for(Object param:parameters){
                name+=param.toString();
            }
            if(name.length()>0){
                if(name.length()>50){
                    name= name.substring(0,49)+"...";
                }
            }else{
                name = result.getMethod().getMethodName();
            }
            if(extenttest==null){
                test = extent.createTest(name);
            }else{
                //作为子节点进行创建时,设置同父节点的标签一致,便于报告检索。
                test = extenttest.createNode(name).assignCategory(categories);
            }
            //test.getModel().setDescription(description.toString());
            //test = extent.createTest(result.getMethod().getMethodName());
            for (String group : result.getMethod().getGroups())
                test.assignCategory(group);

            List<String> outputList = Reporter.getOutput(result);
            for(String output:outputList){
                //将用例的log输出报告中
                test.debug(output);
            }
            if (result.getThrowable() != null) {
                test.log(status, result.getThrowable());
            }
            else {
                test.log(status, "Test " + status.toString().toLowerCase() + "ed");
            }

            test.getModel().setStartTime(getTime(result.getStartMillis()));
            test.getModel().setEndTime(getTime(result.getEndMillis()));
        }
    }
}
 
Example 8
Source File: ExtentTestNGIReporterListenerOld.java    From Java-API-Test-Examples with Apache License 2.0 4 votes vote down vote up
@Override
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
        init();
        boolean createSuiteNode = false;
        if(suites.size()>1){
            createSuiteNode=true;
        }
        for (ISuite suite : suites) {
            Map<String, ISuiteResult> result = suite.getResults();
            //如果suite里面没有任何用例,直接跳过,不在报告里生成
            if(result.size()==0){
                continue;
            }
            //统计suite下的成功、失败、跳过的总用例数
            int suiteFailSize=0;
            int suitePassSize=0;
            int suiteSkipSize=0;
            ExtentTest suiteTest=null;
            //存在多个suite的情况下,在报告中将同一个一个suite的测试结果归为一类,创建一级节点。
            if(createSuiteNode){
                suiteTest = extent.createTest(suite.getName()).assignCategory(suite.getName());
            }
            boolean createSuiteResultNode = false;
            if(result.size()>1){
                createSuiteResultNode=true;
            }
            for (ISuiteResult r : result.values()) {
                ExtentTest resultNode;
                ITestContext context = r.getTestContext();
                if(createSuiteResultNode){
                    //没有创建suite的情况下,将在SuiteResult的创建为一级节点,否则创建为suite的一个子节点。
                    if( null == suiteTest){
                        resultNode = extent.createTest(r.getTestContext().getName());
                    }else{
                        resultNode = suiteTest.createNode(r.getTestContext().getName());
                    }
                }else{
                    resultNode = suiteTest;
                }
                if(resultNode != null){
                    resultNode.getModel().setName(suite.getName()+" : "+r.getTestContext().getName());
                    if(resultNode.getModel().hasCategory()){
                        resultNode.assignCategory(r.getTestContext().getName());
                    }else{
                        resultNode.assignCategory(suite.getName(),r.getTestContext().getName());
                    }
                    resultNode.getModel().setStartTime(r.getTestContext().getStartDate());
                    resultNode.getModel().setEndTime(r.getTestContext().getEndDate());
                    //统计SuiteResult下的数据
                    int passSize = r.getTestContext().getPassedTests().size();
                    int failSize = r.getTestContext().getFailedTests().size();
                    int skipSize = r.getTestContext().getSkippedTests().size();
                    suitePassSize += passSize;
                    suiteFailSize += failSize;
                    suiteSkipSize += skipSize;
                    if(failSize>0){
                        resultNode.getModel().setStatus(Status.FAIL);
                    }
                    resultNode.getModel().setDescription(String.format("Pass: %s ; Fail: %s ; Skip: %s ;",passSize,failSize,skipSize));
                }
                buildTestNodes(resultNode,context.getFailedTests(), Status.FAIL);
                buildTestNodes(resultNode,context.getSkippedTests(), Status.SKIP);
                buildTestNodes(resultNode,context.getPassedTests(), Status.PASS);
            }
            if(suiteTest!= null){
                suiteTest.getModel().setDescription(String.format("Pass: %s ; Fail: %s ; Skip: %s ;",suitePassSize,suiteFailSize,suiteSkipSize));
                if(suiteFailSize>0){
                    suiteTest.getModel().setStatus(Status.FAIL);
                }
            }

        }
//        for (String s : Reporter.getOutput()) {
//            extent.setTestRunnerOutput(s);
//        }

        extent.flush();
    }
 
Example 9
Source File: ExtentTestNGIReporterListenerOld.java    From Java-API-Test-Examples with Apache License 2.0 4 votes vote down vote up
private void buildTestNodes(ExtentTest extenttest, IResultMap tests, Status status) {
    //存在父节点时,获取父节点的标签
    String[] categories=new String[0];
    if(extenttest != null ){
        List<TestAttribute> categoryList = extenttest.getModel().getCategoryContext().getAll();
        categories = new String[categoryList.size()];
        for(int index=0;index<categoryList.size();index++){
            categories[index] = categoryList.get(index).getName();
        }
    }

    ExtentTest test;

    if (tests.size() > 0) {
        //调整用例排序,按时间排序
        Set<ITestResult> treeSet = new TreeSet<ITestResult>(new Comparator<ITestResult>() {
            @Override
            public int compare(ITestResult o1, ITestResult o2) {
                return o1.getStartMillis()<o2.getStartMillis()?-1:1;
            }
        });
        treeSet.addAll(tests.getAllResults());
        for (ITestResult result : treeSet) {
            Object[] parameters = result.getParameters();
            String name="";
            //如果有参数,则使用参数的toString组合代替报告中的name
            for(Object param:parameters){
                name+=param.toString();
            }
            if(name.length()>0){
                if(name.length()>50){
                    name= name.substring(0,49)+"...";
                }
            }else{
                name = result.getMethod().getMethodName();
            }
            if(extenttest==null){
                test = extent.createTest(name);
            }else{
                //作为子节点进行创建时,设置同父节点的标签一致,便于报告检索。
                test = extenttest.createNode(name).assignCategory(categories);
            }
            //test.getModel().setDescription(description.toString());
            //test = extent.createTest(result.getMethod().getMethodName());
            for (String group : result.getMethod().getGroups())
                test.assignCategory(group);

            List<String> outputList = Reporter.getOutput(result);
            for(String output:outputList){
                //将用例的log输出报告中
                test.debug(output);
            }
            if (result.getThrowable() != null) {
                test.log(status, result.getThrowable());
            }
            else {
                test.log(status, "Test " + status.toString().toLowerCase() + "ed");
            }

            test.getModel().setStartTime(getTime(result.getStartMillis()));
            test.getModel().setEndTime(getTime(result.getEndMillis()));
        }
    }
}
 
Example 10
Source File: ExtentTestNGIReporterListenerOld.java    From Java-API-Test-Examples with Apache License 2.0 4 votes vote down vote up
@Override
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
        init();
        boolean createSuiteNode = false;
        if(suites.size()>1){
            createSuiteNode=true;
        }
        for (ISuite suite : suites) {
            Map<String, ISuiteResult> result = suite.getResults();
            //如果suite里面没有任何用例,直接跳过,不在报告里生成
            if(result.size()==0){
                continue;
            }
            //统计suite下的成功、失败、跳过的总用例数
            int suiteFailSize=0;
            int suitePassSize=0;
            int suiteSkipSize=0;
            ExtentTest suiteTest=null;
            //存在多个suite的情况下,在报告中将同一个一个suite的测试结果归为一类,创建一级节点。
            if(createSuiteNode){
                suiteTest = extent.createTest(suite.getName()).assignCategory(suite.getName());
            }
            boolean createSuiteResultNode = false;
            if(result.size()>1){
                createSuiteResultNode=true;
            }
            for (ISuiteResult r : result.values()) {
                ExtentTest resultNode;
                ITestContext context = r.getTestContext();
                if(createSuiteResultNode){
                    //没有创建suite的情况下,将在SuiteResult的创建为一级节点,否则创建为suite的一个子节点。
                    if( null == suiteTest){
                        resultNode = extent.createTest(r.getTestContext().getName());
                    }else{
                        resultNode = suiteTest.createNode(r.getTestContext().getName());
                    }
                }else{
                    resultNode = suiteTest;
                }
                if(resultNode != null){
                    resultNode.getModel().setName(suite.getName()+" : "+r.getTestContext().getName());
                    if(resultNode.getModel().hasCategory()){
                        resultNode.assignCategory(r.getTestContext().getName());
                    }else{
                        resultNode.assignCategory(suite.getName(),r.getTestContext().getName());
                    }
                    resultNode.getModel().setStartTime(r.getTestContext().getStartDate());
                    resultNode.getModel().setEndTime(r.getTestContext().getEndDate());
                    //统计SuiteResult下的数据
                    int passSize = r.getTestContext().getPassedTests().size();
                    int failSize = r.getTestContext().getFailedTests().size();
                    int skipSize = r.getTestContext().getSkippedTests().size();
                    suitePassSize += passSize;
                    suiteFailSize += failSize;
                    suiteSkipSize += skipSize;
                    if(failSize>0){
                        resultNode.getModel().setStatus(Status.FAIL);
                    }
                    resultNode.getModel().setDescription(String.format("Pass: %s ; Fail: %s ; Skip: %s ;",passSize,failSize,skipSize));
                }
                buildTestNodes(resultNode,context.getFailedTests(), Status.FAIL);
                buildTestNodes(resultNode,context.getSkippedTests(), Status.SKIP);
                buildTestNodes(resultNode,context.getPassedTests(), Status.PASS);
            }
            if(suiteTest!= null){
                suiteTest.getModel().setDescription(String.format("Pass: %s ; Fail: %s ; Skip: %s ;",suitePassSize,suiteFailSize,suiteSkipSize));
                if(suiteFailSize>0){
                    suiteTest.getModel().setStatus(Status.FAIL);
                }
            }

        }
//        for (String s : Reporter.getOutput()) {
//            extent.setTestRunnerOutput(s);
//        }

        extent.flush();
    }
 
Example 11
Source File: ExtentTestNGIReporterListenerOld.java    From Java-API-Test-Examples with Apache License 2.0 4 votes vote down vote up
private void buildTestNodes(ExtentTest extenttest, IResultMap tests, Status status) {
    //存在父节点时,获取父节点的标签
    String[] categories=new String[0];
    if(extenttest != null ){
        List<TestAttribute> categoryList = extenttest.getModel().getCategoryContext().getAll();
        categories = new String[categoryList.size()];
        for(int index=0;index<categoryList.size();index++){
            categories[index] = categoryList.get(index).getName();
        }
    }

    ExtentTest test;

    if (tests.size() > 0) {
        //调整用例排序,按时间排序
        Set<ITestResult> treeSet = new TreeSet<ITestResult>(new Comparator<ITestResult>() {
            @Override
            public int compare(ITestResult o1, ITestResult o2) {
                return o1.getStartMillis()<o2.getStartMillis()?-1:1;
            }
        });
        treeSet.addAll(tests.getAllResults());
        for (ITestResult result : treeSet) {
            Object[] parameters = result.getParameters();
            String name="";
            //如果有参数,则使用参数的toString组合代替报告中的name
            for(Object param:parameters){
                name+=param.toString();
            }
            if(name.length()>0){
                if(name.length()>50){
                    name= name.substring(0,49)+"...";
                }
            }else{
                name = result.getMethod().getMethodName();
            }
            if(extenttest==null){
                test = extent.createTest(name);
            }else{
                //作为子节点进行创建时,设置同父节点的标签一致,便于报告检索。
                test = extenttest.createNode(name).assignCategory(categories);
            }
            //test.getModel().setDescription(description.toString());
            //test = extent.createTest(result.getMethod().getMethodName());
            for (String group : result.getMethod().getGroups())
                test.assignCategory(group);

            List<String> outputList = Reporter.getOutput(result);
            for(String output:outputList){
                //将用例的log输出报告中
                test.debug(output);
            }
            if (result.getThrowable() != null) {
                test.log(status, result.getThrowable());
            }
            else {
                test.log(status, "Test " + status.toString().toLowerCase() + "ed");
            }

            test.getModel().setStartTime(getTime(result.getStartMillis()));
            test.getModel().setEndTime(getTime(result.getEndMillis()));
        }
    }
}