加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

unable to find resource 'xxx\xx\over

发布时间:2020-12-14 06:15:21 所属栏目:Java 来源:网络整理
导读:ResourceManager : unable to find resource 'C:TestTestConfigoverview.vm' in any resource loader. org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'C:TestTestConfigoverview.vm' at org.apache.velocity.run

ResourceManager : unable to find resource 'C:TestTestConfigoverview.vm' in any resource loader.org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'C:TestTestConfigoverview.vm' at org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:474) at org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:352) at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1533) at org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:1514) at org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:373) at baseReport.GenerateReporter.generateReport(GenerateReporter.java:28) at org.testng.TestNG.generateReports(TestNG.java:1076) at org.testng.TestNG.run(TestNG.java:1001) at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72) at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)

导致的原因是overview.vm路径不正确

换了一种写法,注释掉的是之前的,对比下

import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.testng.*;
import org.testng.xml.XmlSuite;

import java.io.*;
import java.util.List;
import java.util.Map;
import java.util.Properties;

public class GenerateReporter implements IReporter {

@Override
public void generateReport(List<XmlSuite> xmlSuites,List<ISuite> suites,String outputDirectory) {
    // TODO Auto-generated method stub
    try {
        // 初始化并取得Velocity引擎
        VelocityEngine ve = new VelocityEngine();
        Properties p = new Properties();
        String fileDir=".//TestConfig/";
        //p.setProperty("resource.loader","class");
        //p.setProperty("class.resource.loader.class","org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");
        //ve.init(p);
        //Template t = ve.getTemplate("main/java/baseReport/overview.vm");
        p.setProperty(ve.FILE_RESOURCE_LOADER_PATH,fileDir); //此处的fileDir可以直接用绝对路径来
        ve.init(p);   //初始化
        Template t = ve.getTemplate("overview.vm");//此处只要指明文件名就可以了.
        VelocityContext context = new VelocityContext();

        for (ISuite suite : suites) {
            Map<String,ISuiteResult> suiteResults = suite.getResults();
            for (ISuiteResult suiteResult : suiteResults.values()) {
                ReporterData data = new ReporterData();
                ITestContext testContext = suiteResult.getTestContext();
                // 把数据填入上下文
                context.put("overView",data.testContext(testContext));//测试结果汇总信息
                //ITestNGMethod[] allTests = testContext.getAllTestMethods();//所有的测试方法
                //Collection<ITestNGMethod> excludeTests = testContext.getExcludedMethods();//未执行的测试方法
                IResultMap passedTests = testContext.getPassedTests();//测试通过的测试方法
                IResultMap failedTests = testContext.getFailedTests();//测试失败的测试方法
                IResultMap skippedTests = testContext.getSkippedTests();//测试跳过的测试方法
                //IResultMap starttime=testContext.getStartDate();
                //IResultMap endtime=testContext.getEndDate();

                context.put("pass",data.testResults(passedTests,ITestResult.SUCCESS));
                context.put("fail",data.testResults(failedTests,ITestResult.FAILURE));
                context.put("skip",data.testResults(skippedTests,ITestResult.FAILURE));
            }
        }
        // 输出流

                OutputStream out = new FileOutputStream("report.html");
                Writer writer = new BufferedWriter(new OutputStreamWriter(out,"utf-8"));//解决乱码问题
        // 转换输出
        t.merge(context,writer);
        //System.out.println(writer.toString());
        writer.flush();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
}

  

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读