用于Ruby测试的Makefile

时间:2015-09-26 19:11:30

标签: ruby unit-testing makefile rake

我知道Rake::TestTask

但是,我如何编写Makefile来实现类似的功能呢?

我希望能够通过运行来运行我的所有Ruby测试:

make test

有一种方法可以运行一个测试文件,例如:

TEST=just_one_file.rb make test

我使用MiniTest。

我想要这个,因为我喜欢Make,我想开始更多地使用它。

我认为这个例子会对我有帮助。

我也不明白rake测试在幕后做了什么,所以看看Makefile可能会帮助我理解测试的运行方式。

2 个答案:

答案 0 :(得分:1)

好吧,只需运行MiniTest from command line

这是你运行1个文件的方式:

$ ruby -Ilib:test test/minitest/test_minitest_unit.rb

要运行所有内容,您需要按某种模式收集所有文件(Rake::TestTask默认使用test/test*.rb)然后将其作为参数提供给上述命令,类似这样

$ find test -name 'test*.rb' | xargs ruby -Ilib:test

答案 1 :(得分:0)

目录结构

├── Makefile
├── app
│   ├── controllers
│   ├── helpers
│   ├── views
├── test
│   ├── controllers
│   ├── helpers
│   ├── test_helper.rb

生成文件

TEST := test/**/*_test.rb

.PHONY : test

test :
    ruby -Itest -e 'ARGV.each { |f| require "./#{f}" }' $(TEST)

请参阅how to run all the tests with minitest?

测试命令

make test # runs all tests
make test TEST=test/controllers/* # runs all tests in test/controllers
make test TEST='test/controllers/users_controller_test.rb test/controllers/groups_controller_test.rb' # runs some tests
make test TEST=test/controllers/users_controller_test.rb # runs a single test