测试 Ruby¶ ↑
测试套件¶ ↑
Ruby 代码库中包含多个测试套件
我们可以并行运行任何 make 脚本 并行 以加快速度。
-
这是一个小型测试套件,在 Miniruby 上运行(参见 构建 Ruby)。我们可以使用以下命令运行它
make btest
要使用日志运行它,我们可以使用
make btest OPTS=-v
要运行单个引导测试,我们可以指定文件名列表或在变量
BTESTS
中使用--sets
标志make btest BTESTS="bootstraptest/test_fork.rb bootstraptest/tes_gc.rb" make btest BTESTS="--sets=fork,gc"
如果我们想在 Ruby(而不是 Miniruby)上运行引导测试套件,我们可以使用
make test
要使用日志运行它,我们可以使用
make test OPTS=-v
要使用 GNU make 运行文件或目录,我们可以使用
make test/ruby/test_foo.rb make test/ruby/test_foo.rb TESTOPTS="-n /test_bar/"
-
这是一个更全面的测试套件,在 Ruby 上运行。我们可以使用以下命令运行它
make test-all
我们可以使用
TESTS
选项运行此套件中的特定测试目录,例如make test-all TESTS=test/rubygems
我们可以使用
TESTS
选项运行此套件中的特定测试文件,例如make test-all TESTS=test/ruby/test_array.rb
我们可以使用
TESTS
选项运行此套件中的特定测试,首先指定文件名,然后指定测试名称,并以--name
为前缀。例如make test-all TESTS="../test/ruby/test_alias.rb --name=TestAlias#test_alias_with_zsuper_method"
要使用日志运行这些规范,我们可以使用
make test-all TESTS=-v
我们可以显示
TESTS
选项的帮助信息make test-all TESTS=--help
如果我们想运行
test/
、bootstraptest/
和spec/
测试套件(spec/
将在后面的部分中解释),我们可以运行make check
-
这是一个存在于Ruby spec 仓库中的测试套件,并镜像到 Ruby 仓库中的
spec/ruby
目录。它测试了 Ruby 编程语言的行为。我们可以使用以下命令运行它:make test-spec
要运行特定目录,我们可以使用
SPECOPTS
指定目录make test-spec SPECOPTS=spec/ruby/core/array
要运行特定文件,我们也可以使用
SPECOPTS
指定文件make test-spec SPECOPTS=spec/ruby/core/array/any_spec.rb
要运行特定测试,我们可以使用
--example
标志与测试名称进行匹配make test-spec SPECOPTS="../spec/ruby/core/array/any_spec.rb --example='is false if the array is empty'"
要使用日志运行这些规范,我们可以使用
make test-spec SPECOPTS=-Vfs
要使用 GNU make 运行 ruby-spec 文件或目录,我们可以使用
make spec/ruby/core/foo/bar_spec.rb
-
bundler 测试套件存在于RubyGems 仓库中,并镜像到 Ruby 仓库中的
spec/bundler
目录。我们可以使用以下命令运行它:make test-bundler
要运行特定 bundler spec 文件,我们可以使用
BUNDLER_SPECS
,如下所示:make test-bundler BUNDLER_SPECS=commands/exec_spec.rb
故障排除¶ ↑
在 s390x CPU 架构上运行测试套件¶ ↑
如果我们在 s390x CPU 架构上看到与 zlib 库相关的测试失败,我们可以使用DFLTCC=0
运行测试套件以通过
DFLTCC=0 make check
这些失败可能是由于 zlib 库应用了madler/zlib#410补丁来启用 deflate 算法,从而产生不同的压缩字节流。我们在[ruby-core:114942][Bug #19909]中管理此问题。