ruby - 如何在 minitest 示例中使用标签

Mic*_*ant 5 ruby tags testing minitest

我有

require 'minitest/spec'
require 'minitest/autorun'
require 'minitest/tags'
require 'rspec/expectations'

describe "One happy and one sad test", :happy do
  include RSpec::Matchers

  it "it is true" do
    expect(true).to be true
  end 
  it "it is false" do
    expect(false).to be true
  end 
end      
Run Code Online (Sandbox Code Playgroud)

describe标签有效,但我无法将标签添加到it,如

it "it is true", :happy do
  expect(true).to be true
end 
Run Code Online (Sandbox Code Playgroud)

没有得到:

$ 红宝石测试示例.rb

...1: from test_example.rb:9:in `block in <main>'

.../minitest-5.11.3/lib/minitest/spec.rb:212:in `it':
wrong number of arguments (given 2, expected 0..1) (ArgumentError)
Run Code Online (Sandbox Code Playgroud)

我的 Gem 文件中有 minitest-tags gem 并已捆绑

Cas*_*per 4

minitest -tags gem 不接受标签作为附加参数,而是在标题文本中给出:

it "does stuff(some,tags)"
Run Code Online (Sandbox Code Playgroud)

但是,如果您想要更多describe类似的标签,那么我认为您想使用minispec-metadata来代替:

it "does stuff", :some, :tags
Run Code Online (Sandbox Code Playgroud)

然后您可以使用以下选项运行选定的测试--tag

$ ruby test_example.rb --tag some --tag tags
Run Code Online (Sandbox Code Playgroud)

请注意,minitest-tags gem 已经过时了,如果同时安装,它会与minispec-metadata发生冲突!我建议卸载minitest-tags,并使用minispec-metadata代替。

OP 的注释- 所以我最终得到了:

require 'minitest/spec'
require 'minitest/autorun'
require 'minispec-metadata'
require 'rspec/expectations'

describe "One happy and one sad test" do
  include RSpec::Matchers

  it "is is true", :happy do
    expect(true).to be true
  end 
  it "it is false", :sad do
    expect(true).to be true
  end 
end
Run Code Online (Sandbox Code Playgroud)