【问题标题】:How to run maven test class based on conditions from Jenkins如何根据 Jenkins 的条件运行 Maven 测试类
【发布时间】:2019-06-29 06:39:38
【问题描述】:

我在自动化中使用 POM,在测试中我有 3 个类。比如说test1, test2 and test3

测试人员在属性文件中提供了一个类名,所以如果测试人员在属性文件中提供了类似test1 的内容,我已经在 java 代码中添加了条件,以根据测试人员在属性文件中提供的内容运行类。

但现在我想使用单个构建从 Jenkins 设置相同的东西。我不想为 3 个类创建 3 个构建,所以如果在属性文件测试器中提供值 test1,它应该运行来自 jenkins 的类 test1

我确实检查了条件构建步骤,但似乎无法满足我的需求。

【问题讨论】:

    标签: java maven jenkins


    【解决方案1】:

    使用 Maven surefire 插件的includeFile 属性,您可以明确说明应该运行哪些测试类。您可以使用-Dsurefire.includesFile={yourfile} 之类的表达式从命令行(例如在 Jenkins 中)提供此文件。

    【讨论】:

    • 这里我想告诉如果属性文件的x字段= test1 然后包含test1,并执行它。你能提供更多的细节吗?我的意思是我需要包含测试,但有条件。
    【解决方案2】:

    您可以像以前一样继续,让测试人员在文件中提供测试类名称。该文件要么已经在您的系统上可用,要么可以在 Jenkins 作业构建时由测试人员上传。为此,您必须参数化 Jenkins 作业,并定义文件上传参数。请参阅Jenkins Wiki 作为起点,这两个 Stackoverflow 问题:How to upload a generic file into a Jenkins job?How to use file parameter in jenkins

    现在,这个文件上传对于测试人员来说是乏味的。为什么不将作业参数更改为输入字段和文本字段,并在作业构建测试类名称时提供逗号分隔的字符串和多行文本?

    【讨论】:

    • 是的,因此很容易将作业参数设置为输入,并以逗号分隔提供类名,但我有 3 个类,并且只想根据测试人员提供给属性文件的内容执行 1 个。是的,工作区中有属性文件。
    • 嗯,那是什么问题?要么使用你以前的解决方案,据我所知,要么使用@“JF Meier”的解决方案,在我看来,这是要走的路(官方的Maven方式)。还是我误解了问题/问题?
    猜你喜欢
    • 1970-01-01
    • 2015-06-15
    • 2014-03-12
    • 1970-01-01
    • 2019-11-26
    • 2016-03-09
    • 2017-09-30
    • 2017-01-04
    • 2014-12-12
    相关资源
    最近更新 更多