相关疑难解决方法(0)

如何使用minitest运行所有测试?

我下载了一个项目的源代码,发现了一个bug并修复了它.

现在我想运行测试以查明我是否已经破坏了任何东西.

测试采用最小的DSL.

我如何一次运行它们?

我搜索了适用的rake任务等,但我没有找到任何.

ruby minitest

68
推荐指数
5
解决办法
4万
查看次数

如何在没有Rake的情况下运行完整的MiniTest套件?

已经看过这个问题了,或多或少反映了我目前运行整个套件的方式.

另外,我设置了以下rake任务:

Rake::TestTask.new do |t|
  t.name = "spec:models"
  t.libs << "test"
  t.pattern = "spec/models/*_spec.rb"
end
Run Code Online (Sandbox Code Playgroud)

但是当我使用time rake spec:models它时,我注意到它在大约2.36秒内完成.如果我在该目录中运行所有单独的测试ruby /path/to/spec.rb(目前所有测试都与ActiveRecord隔离 - 没有持久性,那么超快),他们的累计总用户时间是2.36秒,但我也注意到每个文件占用0.4用户从开始到结束执行的秒数,MiniTest报告的实际"测试"时间要快得多(这样我的整个套件在加载依赖后,应该在不到0.15秒的时间内执行,而不是2.36秒).

示例(对于一个spec文件):

Started

11/11:         100% |======================================| Time: 00:00:00

Finished in 0.02223s
11 tests, 15 assertions, 0 failures, 0 errors, 0 skips
ruby path/to/spec.rb  0.43s user 0.06s system 88% cpu 0.559 total
Run Code Online (Sandbox Code Playgroud)

我怀疑Rake正在每次测试的执行之间重新加载库,这就是额外的时间.无论如何我可以验证这一点,或者在不使用Rake的情况下运行我的整个套件?

顺便说一句,当我之前说"用户时间"时,我指的是通过time在我的ruby命令之前输出的第一个数字来运行单个测试文件,所以time ruby /path/to/spec.rb=ruby path/to/spec.rb 0.43s user 0.06s system 88% cpu 0.559 total

ruby rake ruby-on-rails minitest

8
推荐指数
2
解决办法
2604
查看次数

标签 统计

minitest ×2

ruby ×2

rake ×1

ruby-on-rails ×1