当前位置: 首页 > 面试题库 >

如何从命令行使用Gradle运行测试套件

红富
2023-03-14
问题内容

我正在尝试使用gradle通过以下命令运行测试,但无法正常工作

gradle cleanTest test --tests my.package.TestSuite

我的测试套件如下所示

@RunWith(Suite.class)
@Suite.SuiteClasses({
    ATests.class,
    BTests.class,
    CTests.class
})
public class MySuite {
  /* placeholder, use this to contain all integration tests in one spot * */
}

尝试运行以下命令的方法有效,但更糟糕的是,它每次运行两次测试。一次,然后再次在相同名称空间的测试套件下

gradle clean test --tests my.package.*

我可以删除测试套件并以这种方式进行操作,但是我想更好地了解这里发生了什么以及为什么我不能告诉它直接运行测试套件。


问题答案:

以下为我在本地工作。

gradle -Dtest.single=MySuite clean test

与所使用的更高级的过滤方法相比,这实际上使用了不同的方法(包含测试)--test

如参考链接中所述,上面的示例通过创建表单的文件包含模式来工作,**/MySuite*.class--test尝试从扫描的测试集中选择测试。我怀疑Gradle中实现的通用测试过滤与JUnit
Suite运行器周围的特定情况之间存在一些无法预料的相互作用。

话虽如此,甚至Gradle文档都警告说上述方法已被取代,实际上,我可能会回应@Opal的评论,并定义一个明确的任务来为给定的测试阶段运行套件。例如,以下运行方式gradle clean testSuite可能会运行集成套件。

task testSuite(type: Test) {
   include 'MySuite.class'  
}

参考文献:

  • https://docs.gradle.org/current/userguide/java_plugin.html#test_filtering


 类似资料:
  • 问题内容: 如何从命令行运行Junit 4.8.1测试套件?另外,我想使用JUnit 4.8引入的类别,有没有一种方法可以从命令行指定要运行的类别。 问题答案: 从4.8开始,无法从命令行指定类别。

  • 我有一个用gradle构建的大型代码库。我有几个JUnit测试,在构建时运行。 罐子 问题:我如何使用jar提供测试,并允许它们像运行jar一样从命令行运行? 我在SO上找不到任何关于使用gradle分发测试的信息,所有的命令行JUnit示例都不够,因为它们需要手动输入类路径,并且依赖项的数量很大(因此使用gradle Fatjar)。

  • 问题内容: 我想从命令行运行JUnit测试用例。我怎样才能做到这一点? 问题答案: 对于JUnit 5.x,它是: 查找在简要https://stackoverflow.com/a/52373592/1431016的全部细节https://junit.org/junit5/docs/current/user-guide/#running-tests-console-launcher 对于JUnit

  • 并将我的文件保存如下: Runner类: 把这个放到我的大楼里。格雷德尔: 但我得到的回应是: 但是,我不能看到我的测试是否通过。我做错了什么? 分级版本:2.14.1

  • 问题内容: 我是soap ui和Jenkins的新手 如何使用Jenkins运行soap ui测试套件? 您如何在soap ui中生成报告? 问题答案: 我认为下面的链接包含您需要的所有信息 http://www.soapui.org/Test-Automation/functional- tests.html Jenkins实际上是一个持续集成工具。一旦能够通过命令行调用SOAP UI,则可以使

  • 我知道怎么说 但如何指定多个? 这似乎只是随机运行一个测试。 这告诉我 在根项目“MyProject”中找不到任务“MyPackage.Model.ModelTest”。 我读了很多手册和教程(和一些SO帖子),但没有找到明确的答案。但是我看到有人通过-tests“somePackage.*”作为参数,所以我想空格周围的引号可能会有帮助。 这不会很快失败,但不幸的是,它只运行列表中的第一个测试。