问题标签 [parallel-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
508 浏览

ruby-on-rails - 如何在黄瓜测试中集成 parallel_test 和thinking sphinx?

我有带有黄瓜功能的 Rails 4 应用程序。在一些测试中,我想到了狮身人面像数据,例如:

@sphinx钩子包含这个逻辑的地方:

Sphinx indexes all models包含这个:

这里是database.yml

rake parallel:features当我通过(通过parallel_tests )规范运行我的规范时,思考狮身人面像总是失败:

但是,如果我以非并行模式(我的意思是cucumber path/to/my/test.rb)运行这些失败的测试,它可以工作(是的,parallel_tests对其他测试也很有效)。我该如何解决这个麻烦?

0 投票
3 回答
1208 浏览

jenkins - 我将如何在 CI 中创建具有大量服务的 docker 环境

假设我想将 mu 当前的验收测试 CI 环境移动到 docker,这样我就可以利用性能改进并快速设置多个克隆以进行缓慢的验收测试。

我会有很多服务。最简单的是 postgres、mongodb、reddis 等,它们很少更新。

但是,如果我自己的产品也有很多服务,我该怎么办?- 超过 10-20 种服务,所有这些服务都需要一起进行测试。使用 docker 处理这个问题是否可行,即 CI 如何有效地自动控制这么多容器并克隆它们以并行运行验收测试。

另外,我将如何轻松地为 CI 自动更新容器?CI 是否只需要在每次运行开始时使用每个服务分支的 HEAD 重建每个容器?或者 CI 会git pullupdate/migrate command每项服务上运行吗?

在 VM-s 中,很容易控制这些服务,但我想确信 docker 对它也有好处或更好。

0 投票
3 回答
1176 浏览

ruby - 使用 parallel_tests gem 在不同的机器上同时运行相同的 Cucumber 功能

使用 parallel_tests gem 在不同的机器上同时运行相同的 Cucumber 功能

我试图弄清楚如何使用 parallel_tests gem 在各种不同的机器上同时运行完全相同的黄瓜功能。

目前我让它们在不同的机器上运行,但相同的功能不执行,它只是拆分功能并在不同的机器上运行不同的功能。

关于我想要做的更多说明:

我的架构也是:

Cucumber -> Capybara -> Selenium Webdriver -> Selenium Grid

并行测试宝石:https ://github.com/grosser/parallel_tests

0 投票
1 回答
2560 浏览

ruby - 使用 parallel_tests 运行时如何生成 html 报告?

我正在使用parallel_tests框架并行运行一堆 rspec 测试。在并行化测试之前,我将测试结果输出到 html 文件中,如下所示:

现在它看起来更像这样:

但是,现在测试是并行运行的,每个测试都生成自己的 html 文件,并且由于它们都使用相同的路径(tmp/index.html),最后完成的测试会覆盖输出 html 文件,我只留下一份测试报告。如何生成包含所有测试的汇总结果的单个 html 文件(这将是理想的)?如果这是不可能的,我怎样才能将每个测试输出到它自己的输出 html 文件中,这样它们就不会相互覆盖?

我尝试在 parallel_test 项目中使用内置记录器(ParallelTests::RSpec::RuntimeLogger、ParallelTests::RSpec::SummaryLogger 和 ParallelTests::RSpec::FailuresLogger)但这些都只生成简单的文本文件而不是好的像 rspec 这样的 html 文件。我也在这里看到了这个问题,但我没有使用黄瓜,所以这并不适用于我。我尝试放入--format html --out tmp/report<%= ENV['TEST_ENV_NUMBER'] %>.html我的.rspec_parallel文件,但这没有任何效果。

0 投票
1 回答
1009 浏览

java - 有没有办法取消在 Selenium Grid 中运行的测试?

我们有一个设置,我们使用 Selenium 在 Java 中实现了我们的 UI 测试。测试运行器是 JUnit,我们使用 maven 进行构建。我们希望在我们的持续集成中实现的是,我们只使用 maven 的(肯定的)测试目标以并行方式在 Selenium Grid 上运行我们的 UI 测试。到目前为止,我发现了 2 个阻止我们这样做的问题。

  1. 我认为我们可以以某种方式将所有测试发送到 Selenium Grid 集线器,它会处理并行化,但似乎如果我想在网格的 20 个节点(每个节点使用 5 个浏览器)上运行 1000 个测试而不是我实际上会我的 Jenkins 机器上需要 100 个线程来执行 maven 测试目标。有什么方法可以并行化测试而不需要在执行器机器上创建相同数量的线程?

  2. 我们遇到的另一个问题(这整个问题都是关于)是,如果我向 Selenium Grid 发送 100 个测试并且我意识到我搞砸了测试的某些内容并且我停止了启动测试的 maven 进程,那么测试会继续进行在 Selenium Grid 中执行。有没有办法取消这些测试?我在 Selenium API 中一无所获。(甚至在集线器的未记录的 REST API 中也没有)。基本上,如果我向网格发送一些测试,阻止它们的唯一方法是杀死节点(或集线器)。有什么解决方法吗?

提前致谢!

0 投票
1 回答
915 浏览

maven - 与 surefire 和 testng 并行运行测试

我正在试验如何与 maven surefire 和 testng 并行运行测试。但是,配置似乎不是很简单,我无法使其工作。以下是我的虚拟测试。

这是我的万无一失的配置:

测试基本上是按顺序运行的。以下是日志作为证据:

我的意图是并行运行所有测试(直至方法级别)。那么,我该如何实现呢?

0 投票
3 回答
2592 浏览

java - Selenium 在多个浏览器上的并行测试 (JAVA)

我很惊讶没有找到任何智能解决方案如何使用 Selenium Grid 运行 Selenium webdriver 测试,而是使用多个浏览器运行每个测试。最好我想要某种配置(文件或硬编码),我可以在其中指定我希望我的测试运行的所有浏览器。然后每个测试将在每个浏览器上运行。

我假设可以编写自己的测试运行程序并放置一个循环,遍历所有浏览器的每个测试梯级。但也许有人知道更优雅的解决方案?有人做过吗?

PS 我找到了建议复制测试并为每个测试指定浏览器参数的解决方案。我不想要那个。

0 投票
3 回答
1796 浏览

ruby-on-rails - 运行parallel_test时如何在CircleCI中合并多个simplecov目录?

我有一个 rails 应用程序,它在 circleci 内使用 rspec 运行 parallel_test

在互联网上环顾四周,我将其添加到spec_helper.rb文件的开头:

问题是,结果我为每个 circleci 实例获得了不同的文件夹:

在此处输入图像描述

我究竟做错了什么 ?

0 投票
1 回答
649 浏览

junit - 如何并行运行测试但获得整齐有序的测试输出?

我正在使用 sbt 和 JUnit 为大型 Scala 项目运行测试。我正在分叉多个 JVM进行测试,并定义如何在 JVM 中使用testGrouping in Test.

测试是并行运行的,但它们的输出是交错的,因此很难阅读。我已经设置logBuffered in Test := true了,但这似乎没有做任何事情。

这是我的一个片段settings

我怎样才能让我的测试并行运行,但输出以某种方式被缓冲并按顺序显示,以便它可读?outputStrategy在分叉的 JVM 选项中可能需要提供一些设置吗?

这里有一个类似的问题,但我希望让我的测试保持并行运行。

0 投票
0 回答
83 浏览

maven - 如何并行运行同一测试的多个副本?

我们有一个构建服务器,可以同时运行任意数量的构建或测试周期。有时我们会遇到测试失败,这似乎是由于对同一测试的不同调用相互冲突造成的。

在具有数百个或更多测试且主要由其他人编写的大型 Scala 项目中,如果有一种方法可以通过并行运行每个测试的多个副本(在单个或跨多个 JVM)。

有没有办法直接用 sbt 或 Maven 做到这一点?