首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >没有为Util类型定义方法。

没有为Util类型定义方法。
EN

Stack Overflow用户
提问于 2017-11-21 18:34:06
回答 1查看 1.2K关注 0票数 0

我正在从整个文件这里复制粘贴代码,然后对其进行更改并实现IReporter,并在我的java文件中完成了所有必要的导入。除了一个与以下导入相关的错误外,所有错误都消失了:

import org.testng.internal.Utils;

错误是

代码语言:javascript
代码运行次数:0
运行
复制
The method longStackTrace(Throwable, boolean) is undefined for the type Utils   

The method shortStackTrace(Throwable, boolean) is undefined for the type Utils

这两个是定义的,我可以看到它是这里这里。我试着清理这个项目,重新启动eclipse,但是什么都没成功。在pom.xml

代码语言:javascript
代码运行次数:0
运行
复制
<testng.version>6.10</testng.version>
 <dependency>
             <groupId>org.testng</groupId>
             <artifactId>testng</artifactId>
             <version>${testng.version}</version>
             <scope>test</scope>
             <scope>compile</scope> //tried this also
  </dependency>

下面是这个班

代码语言:javascript
代码运行次数:0
运行
复制
package firsttestngpackage;

import java.util.Map;

//import org.apache.xml.serializer.utils.Utils;

import org.testng.IReporter;
import org.testng.ISuite;
import org.testng.ISuiteResult;
import org.testng.reporters.TestHTMLReporter;
import org.testng.xml.XmlSuite;

import org.testng.ITestContext;
import org.testng.ITestNGMethod;
import org.testng.ITestResult;
import org.testng.Reporter;
import org.testng.TestListenerAdapter;
import org.testng.TestRunner;
import org.testng.internal.Utils;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.Serializable;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.Objects;



public class CustomReport  implements IReporter {

     @Override
        public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites,
                                   String outputDirectory) {

        }

     public static void generateTable(PrintWriter pw, String title,
              Collection<ITestResult> tests, String cssClass, Comparator<ITestResult> comparator)
          {
            pw.append("<table width='100%' border='1' class='invocation-").append(cssClass).append("'>\n")
              .append("<tr><td colspan='4' align='center'><b>").append(title).append("</b></td></tr>\n")
              .append("<tr>")
              .append("<td><b>Test method</b></td>\n")
              .append("<td width=\"30%\"><b>Exception</b></td>\n")
              .append("<td width=\"10%\"><b>Time (seconds)</b></td>\n")
              .append("<td><b>Instance</b></td>\n")
              .append("</tr>\n");

            if (tests instanceof List) {
              Collections.sort((List<ITestResult>) tests, comparator);
            }

            // User output?
            String id;
            Throwable tw;

            for (ITestResult tr : tests) {
              pw.append("<tr>\n");

              // Test method
              ITestNGMethod method = tr.getMethod();

              String name = method.getMethodName();
              pw.append("<td title='").append(tr.getTestClass().getName()).append(".")
                .append(name)
                .append("()'>")
                .append("<b>").append(name).append("</b>");

              // Test class
              String testClass = tr.getTestClass().getName();
              if (testClass != null) {
                pw.append("<br>").append("Test class: ").append(testClass);

                // Test name
                String testName = tr.getTestName();
                if (testName != null) {
                  pw.append(" (").append(testName).append(")");
                }
              }

              // Method description
              if (! Utils.isStringEmpty(method.getDescription())) {
                pw.append("<br>").append("Test method: ").append(method.getDescription());
              }

              Object[] parameters = tr.getParameters();
              if (parameters != null && parameters.length > 0) {
                pw.append("<br>Parameters: ");
                for (int j = 0; j < parameters.length; j++) {
                  if (j > 0) {
                    pw.append(", ");
                  }
                  pw.append(parameters[j] == null ? "null" : parameters[j].toString());
                }
              }

              //
              // Output from the method, created by the user calling Reporter.log()
              //
              {
                List<String> output = Reporter.getOutput(tr);
                if (null != output && output.size() > 0) {
                  pw.append("<br/>");
                  // Method name
                  String divId = "Output-" + tr.hashCode();
                  pw.append("\n<a href=\"#").append(divId).append("\"")
                    .append(" onClick='toggleBox(\"").append(divId).append("\", this, \"Show output\", \"Hide output\");'>")
                    .append("Show output</a>\n")
                    .append("\n<a href=\"#").append(divId).append("\"")
                    .append(" onClick=\"toggleAllBoxes();\">Show all outputs</a>\n")
                    ;

                  // Method output
                  pw.append("<div class='log' id=\"").append(divId).append("\">\n");
                  for (String s : output) {
                    pw.append(s).append("<br/>\n");
                  }
                  pw.append("</div>\n");
                }
              }

              pw.append("</td>\n");


              // Exception
              tw = tr.getThrowable();
              String stackTrace;
              String fullStackTrace;

              id = "stack-trace" + tr.hashCode();
              pw.append("<td>");

              if (null != tw) {
                fullStackTrace = Utils.longStackTrace(tw, true);
                stackTrace = "<div><pre>" + Utils.shortStackTrace(tw, true)  + "</pre></div>";

                pw.append(stackTrace);
                // JavaScript link
                pw.append("<a href='#' onClick='toggleBox(\"")
                .append(id).append("\", this, \"Click to show all stack frames\", \"Click to hide stack frames\")'>")
                .append("Click to show all stack frames").append("</a>\n")
                .append("<div class='stack-trace' id='").append(id).append("'>")
                .append("<pre>").append(fullStackTrace).append("</pre>")
                .append("</div>")
                ;
              }

              pw.append("</td>\n");

              // Time
              long time = (tr.getEndMillis() - tr.getStartMillis()) / 1000;
              String strTime = Long.toString(time);
              pw.append("<td>").append(strTime).append("</td>\n");

              // Instance
              Object instance = tr.getInstance();
              pw.append("<td>").append(Objects.toString(instance)).append("</td>");

              pw.append("</tr>\n");
            }

            pw.append("</table><p>\n");

          }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-27 20:10:10

按照上述意见中的建议

通过eclipse更新testNG插件->检查是否更新->然后选择testNG并进行更新,解决了错误

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47420282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档