当前位置: 首页 > 知识库问答 >
问题:

Cucumber如何使用不同的测试代码多次运行特性?

隆康平
2023-03-14

镜头版本:我如何做JUnit的@RunFor(Parameterized::class)与cucumber功能?

我有我喜欢的功能文件。我想多次运行完全相同的功能,但要更改“环境”,使step defs中的@之前的代码略有不同。我有一些测试代码的不同实现,我想确保它们都能正常工作。所以它必须是CI管道的一部分。不是手动命令行

我想在运行之间更改的内容对场景/功能文件没有语义意义,因此我不希望从根本上更改/复制它们。

我正在使用java/kotlin和gradle junit。没有Spring,就没有webUI

我设置了多个jUnit挂钩,它们都指向相同的功能,这适用于多次运行这些功能。但是我不知道如何从钩子到步进防御获取任何信息。

---更新---

这是我必须将cucumber测试插入jUnit的代码:

@RunWith(Cucumber::class)
@CucumberOptions(
    features = ["src/test/resources/hellocucumber/"],
)
class FirstRun

@RunWith(Cucumber::class)
@CucumberOptions(
    features = ["src/test/resources/hellocucumber/"],
)
class SecondRun

这确实运行了两次测试,这就是我想要的。

但是在我的step defs I the@Before部分中,如果我设置了测试中的代码,我如何判断它是第一次运行,还是第二次运行?我想不出从这些存根中获取数据到step defs的方法。

也许这不是办法?


共有1个答案

宗弘扬
2023-03-14

使用环境变量修改之前的代码怎么样,然后不要尝试多次运行特性,而是使用不同的环境变量多次运行Cucumber脚本。

可以为环境变量使用不同的值。甚至是不同的环境变量。

您的功能将从ENV知道它们在哪个运行,

 类似资料:
  • 争论严格适用于每个国家。 我不想为所有国家复制粘贴这个场景,我想知道我是否可以有功能/支持文件,这样我就可以取代“巴西”参数,以获得更动态的东西。 也许所有测试都像cucumber一样运行--参数“巴西”

  • 我目前有一个cucumber的考试数量,它们都在一个特定的标签下,以便这些特定的可以再次运行,一旦我对我的更改感到满意,它们就会被更改为更通用的,它们作为CI套件的一部分运行等。 我当前用于运行该组测试的命令是: 我可以在这个命令中添加什么,以使这些特定的测试在循环中运行?i、 e.我想在这个标签下运行这些特定的测试,比如20次(而不是每次都要等待完成并手动输入命令)。 我试着四处寻找一些例子,但

  • 但是,我只想运行以一些字符串开始的文件。假设前缀为“AsiaUserTests”的文件。类似下面的内容 这将导致,所以我想知道是否有一种方法可以做到这一点,因为我在Web中找不到这样的东西。

  • 问题内容: 有没有办法告诉JUnit在继续下一个测试用例之前,用不同的数据连续运行一个特定的测试用例多次? 问题答案: 看看junit 4.4的理论:

  • 这种方法的优点是,每当我添加一个新模板时,我就不需要更新特性测试。 谢谢

  • 我正在尝试运行一个使用Mockito的JUnit cucumber测试。这是我遇到的问题。在我的cucumber赛跑课上,我有 在我的常规JUnit测试中 鉴于我一次只能有一个@RunWith,我如何将Mockito与cucumber结合使用呢?