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

为什么cucumber场景只有在我运行完整的测试套件后才会失败?

许明朗
2023-03-14

如果我运行特定的场景,它都是绿色的。如果我只运行cucumber套件(又名。耙cucumber),它都是绿色的。但是,如果我运行完整的测试套件,(又名。耙),单个场景失败。

我假设这与数据库的状态和我的配置有关。我编写了cucumber场景以假设最初为空的数据库,并且我正在为各个场景构建小型数据集。

我正在使用DatabaseCleaner和截断策略,我的理解是,这将清除数据库。我弄错了吗?单元测试和功能测试运行时是否有可能创建的数据延迟?有没有一个快速的方法来确保cucumber开始干净?

很高兴开始发布代码并深入了解配置细节。。。

谢啦

共有1个答案

连时铭
2023-03-14

双手抱着头。深感羞愧。

我从来没有真正清理过数据库。

我制定了策略,但从未扣动扳机。

功能/支持/环境。rb

之前:

begin
  DatabaseCleaner.strategy = :truncation
rescue NameError
  raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end

之后:

begin
  DatabaseCleaner.strategy = :transaction
  DatabaseCleaner.clean
rescue NameError
  raise "You need to add database_cleaner to your Gemfile (in the :test group) if you wish to use it."
end

别让它发生在你身上。

叹气。

 类似资料:
  • 问题内容: 在运行JUnit测试时,我似乎总是会遇到此错误: 蚀outOfMemoryError:堆空间 我已经用JConsole监视了Eclipse,并且堆内存的峰值大约为150MB。我已将堆内存设置为1GB。 启动Eclipse时,我使用以下参数: 有谁知道是什么原因导致此问题?它仅在运行JUnit测试时发生。 问题答案: Junit测试在与Eclipse IDE不同的vm中运行。因此,内存不

  • 我有一个示例项目,其中使用了Maven、TestNg和Cucumber。我使用testrunner类运行测试。 我创建了一个包含两个方案的功能文件,但两个方案都失败了。我有两个具有不同功能文件的测试运行者类 - 1。特征文件指向所有功能,2。指向仅失败的方案。 当我尝试重新运行场景时,它只运行一个场景。 1- 请告知如何执行所有失败的方案。

  • 问题内容: 我正在使用Cucumber / Capybara组合测试Rails 3应用程序。我还尝试使用Selenium测试一些特定于JavaScript的场景,但是遇到了我不理解的怪异难题。 我对黄瓜/水豚的经验很低,对selenium的经验为零。 这是场景: 当该方案在RackTest下运行时,一直进行到Google Map步骤,此刻它失败了,因为没有JavaScript。这是预期的。 当我使

  • 我不确定我是否会一直使用第二个变体。如果我有多个场景共享上下文“user is on account Page”,并且其中一些场景有额外的用户操作,而其他场景没有,那么在我看来,将“user in account Page”作为给定步骤应该是有效的,尽管对于某些场景,它可能缺少“When”。这是一个有效的方法吗?

  • 我想自动重试失败的测试,以提高测试的可靠性,类似于 Junit 中的 TestRule,我希望能够灵活地在测试周围插入逻辑,以便实现重试循环: > 我正在使用Cucumber-JVM,需要一个涉及Java或Gradle的解决方案 我通过Gradle javaexec尝试了以下cucumber选项: //--format pretty--format rerun--out tmp/rerun.txt

  • 问题内容: 发生了最奇怪的事情,我的测试运行正常,但现在不再,我完全没有更改代码,这里是一个例外: 问题答案: 我看到您正在使用Eclipse,但您是否还在使用其他外部构建/测试工具,例如Ant或Maven?有时,在同时使用其他外部工具时,Eclipse可能会不同步。 如果使用外部工具,请执行清理生成的工件所需的所有操作(例如mvn clean)。然后刷新Eclipse项目并按照前面的建议进行干净