- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
对于客户,我们需要为集成测试生成详细的测试报告,这些报告不仅表明一切都是绿色的,而且还表明测试做了什么。我和我的同事都很懒惰,我们不想破解电子表格或文本文档。
为此,我想了一种方法来记录更复杂的集成测试,并在每个 @Test 注释方法和每个测试类上使用 JavaDoc 注释。对于测试人员来说,了解哪个需求、Jira 票证或与测试相关的任何内容以及测试实际尝试做什么是很有帮助的。我们也想将这些信息提供给我们的客户。
现在最大的问题是:我们如何将每个方法和每个测试类的 JavaDoc 放入 JUnit 报告中?我们使用 JUnit 4.9 和 Maven。
我知道,每个 assertXXX() 都有一个描述,但我们确实需要一个漂亮的 HTML 列表作为结果或一个 PDF 文档,其中列出了所有类和文档以及所有 @Test 方法及其描述,测试时间,结果,如果失败,原因。
或者是否有另一种方法来生成精美的测试脚本? (或者我们应该为此启动一个开源项目!?;-))
更新:我问了另一个关于如何将 RunListener 添加到 Eclipse 以使其在 Eclipse 中启动时也报告的问题。具有自定义 TestRunner 的建议解决方案是获得测试结果报告的另一种可能性。看看:How can I use a JUnit RunListener in Eclipse?
最佳答案
实现此目的的一种方法是使用自定义 RunListener ,但需要注意的是,使用注释而不是 javadoc 会更容易。您需要有一个自定义注释,例如:
@TestDoc(text="tests for XXX-342, fixes customer issue blahblah")
@Test
public void testForReallyBigThings() {
// stuff
}
RunListener
监听测试事件,如测试开始、测试结束、测试失败、测试成功等。
public class RunListener {
public void testRunStarted(Description description) throws Exception {}
public void testRunFinished(Result result) throws Exception {}
public void testStarted(Description description) throws Exception {}
public void testFinished(Description description) throws Exception {}
public void testFailure(Failure failure) throws Exception {}
public void testAssumptionFailure(Failure failure) {}
public void testIgnored(Description description) throws Exception {}
}
Description包含应用于测试方法的注释列表,因此使用上面的示例,您可以使用以下方法获取 Annotation TestDoc:
description.getAnnotation(TestDoc.class);
然后正常提取文本。
然后您可以使用 RunListener
生成您想要的文件,其中包含特定于该测试的文本、测试是通过还是失败、或被忽略、花费的时间等。这将是您的自定义报告。
然后,在万无一失的情况下,您可以指定一个自定义监听器,使用:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
<configuration>
<properties>
<property>
<name>listener</name>
<value>com.mycompany.MyResultListener,com.mycompany.MyResultListener2</value>
</property>
</configuration>
</plugin>
这是来自 Maven Surefire Plugin, Using JUnit, Using custom listeners and reporters
这种解决方案的缺点是在回车、格式化方面没有 javadoc 的灵 active ,但它的优点是文档在一个特定的位置,即注释 TestDoc。
关于java - 使用 JavaDoc 丰富 JUnit 测试报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8084773/
我有多个程序员为 javadocs 贡献示例,一些示例包含格式化为 /* * */ 当我将这些示例放入 javadoc 注释时,示例中的注释 close 将关闭 javadoc 注释。 /**
我目前有一些 Source and Javadoc on GitHub .您可能知道,无法在 GitHub 上查看(呈现的)HTML 页面。但是solutions为这个问题而存在。就在一天前,这个解决
我希望能够使用@nnotations 来标记要从 javadoc 中排除的类或方法。 有没有办法为此目的对标准 doclet 进行子类化?第一次浏览 javadoc-doc 没有揭示解决方案。 最佳答
我正在生成 Javadocs。现在我想自动将所有库和 JDK 类链接到该库或 JDK 的官方文档。这可能吗?如果可以,我需要哪个命令行参数 最佳答案 解析对标准 Java 类的引用需要您拥有 Java
我正在生成 Javadoc。现在我想自动将所有库和 JDK 类链接到该库或 JDK 的官方文档。这可能吗,如果是的话,我需要哪个命令行参数 最佳答案 解析对标准 Java 类的引用需要您拥有 Java
我想在我的 javadoc 中使用自定义标签,但要遵守某种约定,以便其他人可以更轻松地理解它们。在 Oracle 的官方 javadoc 文档页面上,他们列出了基本标签,与我的编辑器的 javadoc
我在 javadoc 中的代码示例中有一个 @: * * public class ArticleService { * @Autowired * private Artic
如果您有几个不同项目的标准 Javadoc,您如何处理它们以创建一个统一的文档集,其中所有内容都是交叉链接的?理想情况下,结果将类似于 NetBeans 平台中各种模块的文档: http://bits
我正在尝试将现有的 Javadoc 修复到 project . 我在运行 mvn javadoc:fix .它成功执行但没有修复一些 Javadocs。 Maven Javadoc插件的配置: [DE
我正在尝试为多模块项目创建聚合 javadoc。该项目使用 mvn install -DskipTests 编译(我没有在我的机器上运行测试)。当我运行 mvn validate javadoc:ja
当我这样做时,我收到以下错误 mvn clean deploy -DperformRelease=true [ERROR] Exit code: 1 - .java:3: package javax.
我有一个带有 maven-javadoc-plugin 和 JDK8 的 Maven 项目。当我运行 mvn javadoc:test-javadoc 时,插件会报告文档错误并停止,但是当我运行 mv
我们使用 swagger 代码生成来创建客户端 API,代码库是用 java 8 编写的,我们现在升级到 java 11。我们使用 2.4.15 版本的 swagger-codegen-cli。代码生
过了一会儿,我回来写 JavaDoc。与此同时,我开始喜欢 SO 的标记,它在纯文本中比 HTML 更具可读性。 (即使是我以前从未使用过的反勾号)。 /** * I'm talking about
我有以下依赖项并在我的 pom 文件中构建。我可以使用 Maven 命令手动创建 javadoc。我也可以成功执行构建。输出根本没有提到 javadoc。我还尝试省略输出目录路径。 POM文件依赖部分
如何在 gitlab 中发布 javadoc?到目前为止,我已将 javadocs html 页面添加到 repo,但是当我尝试查看它们时,会显示原始文本 html 源,而不是重新编辑的 html 页
我在 Eclipse 中使用 Jsoup 时遇到了这个问题。我附上了以下 jar 文件:jsoup 1.7.2.jarjsoup 1.7.2.javadoc.jarjsoup 1.7.2.source
我正在尝试修复我的项目的javadoc(主要缺少@param和@return值),并且由于有相当多的代码需要修复,我正在尝试使用javadoc:fix目标: mvn javadoc:fix 不幸的是,
有什么东西可以用来解析 JavaDoc,以便我可以在运行时通过标准 Doclet 接口(interface)对其进行操作吗?本质上,一个 Doclet 的反向操作. 我知道不可能为每个 Javadoc
由于 TypeScript 不支持压缩或混淆,而这两者都是我们需要的功能,因此我们的工具链中仍然需要像 Google 的 Closure 编译器这样的工具。有没有办法让 TypeScript 自动输出
我是一名优秀的程序员,十分优秀!