- 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/
我想用个人详细信息来丰富订单集合。 假设我已经(示例在 json 中): [ { "orderId": 123, "quantity": 5, "buyerI
def classify(numb): i=1 j=1 sum=0 for i in range(numb): for j in range(numb)
我正在尝试使用 Spark 处理来自 HBase 表的数据。 This blog post给出了如何使用 NewHadoopAPI 从任何 Hadoop InputFormat 读取数据的示例。 我做
我使用 rich:menuitem 在 Richfaces 上构建了菜单。我需要确定用户单击了哪个菜单项。我尝试使用: 但是,我在请求参数中没有看到参数
注意:我遗漏了不相关的代码 所以我目前正在研究 CCC 1996 P1,这个问题的全部目的是能够计算一个整数输入是完美数、不足数还是充数。我上面列出的代码可以工作,但是我认为它太慢了。该代码会迭代每个
我们正在考虑将 ACS 作为我们的联合 STS。我们可以将自己的自定义 STS 配置为 IP-STS,以及“内置”身份提供商,例如 Facebook、Live 和 Google。然而,我们收到的 cl
我使用以下命令成功创建了一个绘图: # suppose I have a p <- ggplot(data=df, ...) then the following works # I get thos
我正在使用 spring-data-rest 存储库从 REST API 公开常见的 CRUD 操作。 但是我需要为这些操作添加额外的功能。 例如我想向第三方 API 发送关于删除的 HTTP 请求。
我有一个java支持bean,它有一个方法(称之为getDataList()),它返回ArrayList . 在 MyType.java我有很多 setter 和 getter,它们都分配 Strin
我正在使用以下代码:
我正在尝试在facelet组合中使用rich:faces组件rich:jQuery。但我无法产生任何 jquery 调用。 另一个问题...我将如何重写它以落入第一模式
是否可以将 Firebase 上游消息作为可操作通知进行传递?这就是我想要实现的目标:我希望能够将可操作的上游 Firebase 消息从我的 iPad 发送到我的 iPhone。 这可能吗? 这是我的
我有richfaces应用程序。在页面中,定义了 jQuery 函数: 然后我有一些 a4j:commandLink,它应该在完成 ajax 请求时调用该函数。 不幸的是,它不起作用。我知道 on
我有一个 rich:tree 组件,如下使用:
对于客户,我们需要为集成测试生成详细的测试报告,这些报告不仅表明一切都是绿色的,而且还表明测试做了什么。我和我的同事都很懒惰,我们不想破解电子表格或文本文档。 为此,我想了一种方法来记录更复杂的集成测
我在构建 Clojure 时遇到了一些困难基于 Web 应用程序。这是一个简单的 CRUD 应用程序,我开始探索 Clojure 网络生态系统。我正在尝试不同的库,例如 Hiccup , Enlive
我正在编写一个 Flink 流程序,其中我需要使用一些静态数据集(信息库,IB)来丰富用户事件的 DataStream。 对于例如假设我们有一个买家的静态数据集,并且有一个传入的事件点击流,对于每个事
在我的应用程序中,我有一个记录列表。用户可以选择任何记录,更新选项菜单。表格显示了这些记录,它有分页。 所以问题是,当我选择一条记录并对列表进行排序(使我之前选择的记录转到另一个页面)时,我看不到所选
我有一棵树(父级可以有任意数量的子级)和一个用于按名称搜索节点的 inputText 。假设有以下树: A --A1 ----AA1 --A2 其中 A 有两个子级 A1 和 A2,A1 有一个子级
我有一个 rich:dataTable 和一个 rich:dataScroller。当我单击 datascroller 时,我的 dataTable 不会自动刷新以显示正确的页面。但是,如果我按下刷新
我是一名优秀的程序员,十分优秀!