- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用 JUNIT
进行测试。我能够运行我的测试用例,但问题是如何使用 runlistener 以编程方式创建 JUNIT 报告(不使用 ANT 或 MAVEN)。我有点卡住了,希望得到任何指导。
监听器实现:-
JUnitCore junit = new JUnitCore();
junit.addListener(new MyJunitListener());
junit.run(AllEJBJunitTests.class);
我如何继续创建报告?
最佳答案
您可以使用 StringBuffer 生成 HTML 报告。
String filePath = "File path where you want to keep your report";
String reportFileName = "myReport.htm";
JUnitCore junit = new JUnitCore();
junit.addListener(new MyJunitListener());
Result result = junit.run(AllEJBJunitTests.class);
StringBuffer myContent = getResultContent(result, size);//Size represents number of AllEJBJunitTests class, suppose if you have 5 EJB classes then size is 5.
writeReportFile(filePath + "/" + reportFileName, myContent);
//此方法将为您提供 HTML 内容。
private StringBuffer getResultContent(Result result, int numberOfTestFiles)
{
int numberOfTest = result.getRunCount();
int numberOfTestFail = result.getFailureCount();
int numberOfTestIgnore = result.getIgnoreCount();
int numberOfTestSuccess = numberOfTest - numberOfTestFail - numberOfTestIgnore;
int successPercent = (numberOfTest != 0) ? numberOfTestSuccess * 100 / numberOfTest : 0;
double time = result.getRunTime();
StringBuffer myContent = new StringBuffer("<h1>Junitee Test Report</h1><h2>Result</h2><table border=\"1\"><tr><th>Test Files</th><th>Tests</th><th>Success</th>");
if ((numberOfTestFail > 0) || (numberOfTestIgnore > 0)) {
myContent.append("<th>Failure</th><th>Ignore</th>");
}
myContent.append("<th>Test Time (seconds)</th></tr><tr");
if ((numberOfTestFail > 0) || (numberOfTestIgnore > 0)) {
myContent.append(" style=\"color:red\" ");
}
myContent.append("><td>");
myContent.append(numberOfTestFiles);
myContent.append("</td><td>");
myContent.append(numberOfTest);
myContent.append("</td><td>");
myContent.append(successPercent);
myContent.append("%</td><td>");
if ((numberOfTestFail > 0) || (numberOfTestIgnore > 0)) {
myContent.append(numberOfTestFail);
myContent.append("</td><td>");
myContent.append(numberOfTestIgnore);
myContent.append("</td><td>");
}
myContent.append(Double.valueOf(time / 1000.0D));
myContent.append("</td></tr></table>");
return myContent;
}
//这将在您提到的特定目录中生成报告。
private void writeReportFile(String fileName,StringBuffer reportContent){
FileWriter myFileWriter = null;
try {
myFileWriter = new FileWriter(fileName);
myFileWriter.write(reportContent.toString());
}
catch (IOException e) {
}
finally {
if (myFileWriter!=null) {
try {
myFileWriter.close();
}
catch (IOException e) {
}
}
}
}
干杯!!
关于java - 如何使用 runlistener 创建 JUNIT 报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26257635/
请耐心等待,这会很长。我写了下面的TestRunner.java import java.util.ArrayList; import java.util.List; import org.junit
我正在尝试收集有关系统中运行的测试的数据。测试来自外部 jar: Class classToLoad = Class.forName ("tests.tests", true, chi
我正在使用RunListener让测试在写入 System.out 时失败,但是当我失败()单元测试时,监听器将被删除。有没有办法让测试失败而不删除监听器? 为了澄清代码示例 public class
我正在将我的 Cucumber-JUnit 项目转换为 Cucumber-TestNg。在 Junit 中,我使用 RunListener 获取正在执行的 Gherkin 步骤。我使用此监听器返回当前
我想在我的测试开始运行时运行一次性设置逻辑。我有多个测试类,我希望这个逻辑在所有测试类执行之前只运行一次。我看到有一个 RunListener.testRunStarted 方法,但似乎为了注册该通知
我为 JUnit 编写了一个简单的 RunListener,它与 Maven 配合得很好。我可以通过以下方式为 maven-failsafe-plugin 注册它 list
我想用我自己的 RunListener 在我的单元测试中。所以我创建了以下类: public class MyRunListener extends RunListener { public
这个问题已经有答案了: Why am I getting a NoClassDefFoundError in Java? (31 个回答) 已关闭 5 年前。 我一直在使用 eclipse 和 mav
目标 有一个自定义RunListener使用 Espresso 运行 Android 仪器测试时,对测试失败执行自定义操作。 tl;博士 InstrumentationInfo.metaData是 n
我一直在使用 JUNIT 进行测试。我能够运行我的测试用例,但问题是如何使用 runlistener 以编程方式创建 JUNIT 报告(不使用 ANT 或 MAVEN)。我有点卡住了,希望得到任何指导
在我们的环境中,我们使用 JUnit 4 TestListener 向远程服务器报告测试结果。 JUnit 5 是如何做到这一点的? 最佳答案 您可以使用TestExecutionListener:
我需要在 JUnit 中以不同的方式处理失败和通过的测试。但是 JUnit RunListener 只有 testFinished() 会在测试失败或失败时调用,而 testFailed() 仅在测试
我想在测试失败时收到通知。理想情况下,我想知道我的 @After 注释方法中的测试是通过还是失败。我知道他们是一个可用于此目的的 RunListener,但只有当我们使用 JunitCore 运行测试
有没有办法在测试方法的所有@After 注释方法都运行之后调用方法?我需要这个用于我公司的特殊框架。在 testng 中,我可以使用 afterInvocation 方法,该方法在每个配置方法之后调用
我正在做一个项目,在运行每个 JUnit 测试之前我需要执行一些操作。使用可以添加到 JUnit 核心的 RunListener 解决了这个问题。项目组装是使用 Maven 完成的,所以我的 pom
我已经尝试过link 中的示例中给出的JUnit 监听器示例 MyRunner.class public class MyRunner extends BlockJUnit4ClassRunner {
我需要运行一个参数化测试,该测试按预期工作正常,但这里的问题是,在我们的框架中,我们有自己的自定义监听器类,它扩展 RunListener 并覆盖所有方法。但是当我将测试作为参数化测试运行时,没有任何
我正在为 Testframework 编写 TestNG 提供程序。这样我必须将 RunListener Interface (org.apache.maven.surefire.report.Run
我在运行 espresso 测试时遇到这个错误,完整的日志是: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/junit/run
我有一个打包成耳朵的项目。在过去一个月左右的时间里,系统测试已被禁用。我们重新打开它们,并一直在修复失败的测试和构建脚本的问题。我一直没能破解最新的问题: [ERROR] Failed to exec
我是一名优秀的程序员,十分优秀!