【问题标题】:How can I run a set of junit tests in multiple test classes?如何在多个测试类中运行一组 junit 测试?
【发布时间】:2011-09-30 04:11:58
【问题描述】:

在我的 web 应用程序中,有多个具有通用 webElements 的屏幕。我想断言所有这些共同元素都存在于每一页上。但我不想将我的所有断言放入一个实用函数中,如果一个断言失败,它将中途中止。我希望每个断言都有单独的测试用例,并在多个测试类中运行该组测试(每个页面一个)。

我读到继承是一个坏主意,因为你必须比直接的测试类更深入地挖掘才能看到所有正在运行的测试。但同时,我不想维护跨页面通用的多个测试副本。

【问题讨论】:

  • 你应该做对你和你的团队有用的事情。

标签: unit-testing testing junit


【解决方案1】:

同样的规则适用于测试开发,也适用于您的其余开发,您做您和您的团队认为最容易理解的事情。您有以下选择:

  1. 继承:在父类中定义测试。我在 JUnit 测试中使用了继承,包括父类中的测试。这工作得很好,主要优点是它节省了重复的代码。缺点:您必须在多个地方进行测试。当您在 Eclipse 的 Junit 视图中双击测试名称时,它会将您带到父类,这有时会令人困惑。

  2. 有一个专门用于测试页面通用功能的类,我们称之为 PageTest。 PageTest 将使用@Parameterized 来测试所有页面。优点:您对常见内容的所有测试都是集中的。缺点,如果添加页面,需要将该页面添加到列表中。如果可能的话,您可以避免使用反射将内容添加到列表中。我们有一组测试在类路径中搜索从某个类(在本例中为 struts Action)继承的任何类,并在该类上运行一些测试。

在这两个选项中,我会选择前者,因为它的工作量更少;单个页面的所有内容都在一个地方,您永远不会“忘记”测试公共元素。但这是你的项目,做对你有用的事。

【讨论】:

    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 2017-08-30
    • 2018-02-09
    • 2013-01-10
    • 1970-01-01
    • 2019-04-09
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多