简体   繁体   English

如何使用 Ruby 测试/单元执行单个测试?

[英]How do I execute a single test using Ruby test/unit?

Instead of running all the test cases automatically, is there any way to execute a single test under ruby test/unit framework.有没有办法在 ruby 测试/单元框架下执行单个测试,而不是自动运行所有测试用例。 I know I can achieve that by using Rake but I am not ready to switch to rake at this moment.我知道我可以通过使用 Rake 来实现这一点,但我现在还没有准备好切换到 rake。

ruby unit_test.rb  #this will run all the test case
ruby unit_test.rb test1 #this will only run test1

you can pass the -n option on the command line to run a single test:您可以在命令行上传递 -n 选项来运行单个测试:

ruby my_test.rb -n test_my_method

where 'test_my_method' is the name of the test method you would like to run.其中 'test_my_method' 是您要运行的测试方法的名称。

If you look for a non-shell solution, you could define a TestSuite.如果您寻找非 shell 解决方案,您可以定义一个 TestSuite。

Example:例子:

gem 'test-unit'
require 'test/unit'
require 'test/unit/ui/console/testrunner'

#~ require './demo'  #Load the TestCases
# >>>>>>>>>>This is your test file demo.rb
class MyTest < Test::Unit::TestCase  
  def test_1()
    assert_equal( 2, 1+1)
    assert_equal( 2, 4/2)

    assert_equal( 1, 3/2)
    assert_equal( 1.5, 3/2.0)
  end
end
# >>>>>>>>>>End of your test file  


#create a new empty TestSuite, giving it a name
my_tests = Test::Unit::TestSuite.new("My Special Tests")
my_tests << MyTest.new('test_1')#calls MyTest#test_1

#run the suite
Test::Unit::UI::Console::TestRunner.run(my_tests)

In real life, the test class MyTest will be loaded from the original test file.在现实生活中,测试 class MyTest 将从原始测试文件加载。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM