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

在Spring IDE中为Spock测试规范创建测试套件

丘浩宕
2023-03-14

我有数百个用Spock编写的测试规范。所有这些都是功能测试,可以独立运行。但我遇到了一种情况,在运行其他测试之前,我需要运行一个特定的测试。

使用Junit测试套件很容易实现这一点,而且在Eclipse中非常简单。但由于我所有的测试都是groovy测试,所以在Spring IDE中为spock测试(用groovy编写)创建测试套件并不容易。

有人能分享一些关于我们如何创建测试套件、运行一些特定测试以及定义测试顺序的想法吗?

任何帮助都将不胜感激。

共有3个答案

晋承嗣
2023-03-14

虽然我认为它不允许您指定测试的顺序,但您可以使用Spock的Runner配置或@IgnoreIF/@要求内置扩展。看看我对类似问题的回答。它可能也值得看看RunnerConfiguration javadoc,因为它表明您可以直接包含类,而不是使用注释。

冷夜洛
2023-03-14

如果您只需要在一个规范中顺序执行方法,请查看@spock。lang.Stepwise,这对于测试工作流非常方便。否则,您就有了与普通JUnit相同的可能性:您可以在您选择的构建工具中使用JUnit(4)测试套件、模型测试套件(这在STS中可能没有帮助),或者通过Eclipse运行配置定义测试套件。我不知道对后者的支持有多大,但至少,它应该允许您在一个包中运行所有测试。

朱雅惠
2023-03-14

Spock规范也是有效的JUnit测试(或套件)。这就是为什么它们被STS等工具识别。您应该能够将它添加到测试套件以及其他JUnit测试中。

另一方面,如果你的测试依赖于执行顺序,这听起来不是一个好的做法。如果在测试执行之前需要执行某些任务,则应将其置于setup()方法中。如果该逻辑对于多个测试是常见的,请考虑将其提取到父类。

 类似资料:
  • 我在看一个例子,从沃尔的春靴在行动书。它是一个用Groovy编写的简单web应用程序。该项目使用Spring CLI构建、运行和测试,不使用gradle构建文件,并使用grabs.groovy文件提供H2和Thymeleaf依赖项。有两个测试班。第一个是JUnit测试,第二个是Spock规范。JUnit测试文件是: 我不擅长编写Spock测试,所以我不确定问题是什么。

  • 看起来让它静态化可能会起作用,但我想要的方法会触及类的@shared变量,所以我不确定静态是最好的选择。

  • 非常感谢您的任何建议,

  • 我试图重用我在另一个Geb规范中编写的一个Geb规范测试,这样我就不需要重写代码了。我总是需要在不同的页面的产品编号,所以我想做类似以下的事情; 在另一个GebSpec中,我希望使用上面的,如下所示:

  • 并且我使用JUnit和Mockito为该方法编写了一个单元测试。这些测试正在工作: 现在我尝试使用Groovy和Spock框架编写这些测试。我写了如下规范: 这个测试起作用了。但是,当我想通过在语句或我得到一个错误。第36行位于

  • 我试图用Jasmine为Angularjs编写单元测试。这是我的控制器: 和测试 测试失败,即使我试图测试期望(true). toBe(true); 茉莉花,因果报应,棱角分明的嘲弄都在我的索引里。jasmine调试页面中的html,还有测试脚本。 我发现如果删除beforeach()块,expect(true)。托比(真的)通过了。 下面是一个错误: