ruby gem test-unit源码分析

ruby gem test-unit源码分析
读源码的人真少呀。我是最想偷懒的人,早上想看activerecord,网上有人介绍这是根据马丁的一种设计模式弄出来的,于是立马去网上购了书,我想等书到了后,先看那个模式,再慢慢分析源码。
下午就看其它的gem,感觉test-unit应该好看些,这次先装最低版本。
sudo gem install -v 1.2.3 test-unit
再把最低版本下载下来,用7Z打开,其中文件太多了,我列出来
------------------------------
History.txt
Manifest.txt
README.txt
Rakefile
bin/testrb
lib/test/unit.rb
lib/test/unit/assertionfailederror.rb
lib/test/unit/assertions.rb
lib/test/unit/autorunner.rb
lib/test/unit/collector.rb
lib/test/unit/collector/dir.rb
lib/test/unit/collector/objectspace.rb
lib/test/unit/error.rb
lib/test/unit/failure.rb
lib/test/unit/testcase.rb
lib/test/unit/testresult.rb
lib/test/unit/testsuite.rb
lib/test/unit/ui/console/testrunner.rb
lib/test/unit/ui/fox/testrunner.rb
lib/test/unit/ui/gtk/testrunner.rb
lib/test/unit/ui/gtk2/testrunner.rb
lib/test/unit/ui/testrunnermediator.rb
lib/test/unit/ui/testrunnerutilities.rb
lib/test/unit/ui/tk/testrunner.rb
lib/test/unit/util/backtracefilter.rb
lib/test/unit/util/observable.rb
lib/test/unit/util/procwrapper.rb
lib/test/unit/version.rb
sample/adder.rb
sample/subtracter.rb
sample/tc_adder.rb
sample/tc_subtracter.rb
sample/ts_examples.rb
test/collector/test_dir.rb
test/collector/test_objectspace.rb
test/runit/test_assert.rb
test/runit/test_testcase.rb
test/runit/test_testresult.rb
test/runit/test_testsuite.rb
test/test_assertions.rb
test/test_error.rb
test/test_failure.rb
test/test_testcase.rb
test/test_testresult.rb
test/test_testsuite.rb
test/util/test_backtracefilter.rb
test/util/test_observable.rb
test/util/test_procwrapper.rb
------------------------------
其实,我也不会用test-unit,因为《ruby元编程》中提到了这个工具,原来用perl时,也有类似工具。感觉这个工具可能独立性强些。
初步分析,这些文件中,先进去sample文件夹看看,我试着执行一下文件,如
发现跑不过,于是把
require './adder'
在require中加上当前文件夹的标志,居然就能跑过了。
这个sample下的几个例子,很快就看完了。
有一个问题,test/collector/test_dir.rb
这些东西是做什么的,后来,我想,这些可能是用来对TEST-UNIT程序进行测试的程序,我当时在想,怎么会有两套相同的程序。其中,模块中定义模块,再定义类,真是搞得头大。
所以关键的代码,应该就是在lib文件夹下。
lib/test/unit.rb
lib/test/unit/assertionfailederror.rb
lib/test/unit/assertions.rb
lib/test/unit/autorunner.rb
lib/test/unit/collector.rb
lib/test/unit/collector/dir.rb
lib/test/unit/collector/objectspace.rb
lib/test/unit/error.rb
lib/test/unit/failure.rb
lib/test/unit/testcase.rb
lib/test/unit/testresult.rb
lib/test/unit/testsuite.rb
lib/test/unit/ui/console/testrunner.rb
lib/test/unit/ui/fox/testrunner.rb
lib/test/unit/ui/gtk/testrunner.rb
lib/test/unit/ui/gtk2/testrunner.rb
lib/test/unit/ui/testrunnermediator.rb
lib/test/unit/ui/testrunnerutilities.rb
lib/test/unit/ui/tk/testrunner.rb
lib/test/unit/util/backtracefilter.rb
lib/test/unit/util/observable.rb
lib/test/unit/util/procwrapper.rb
lib/test/unit/version.rb
有些简单,像version.rb,有些就真是头大。关键是英语不好,我最喜欢看注释,因为注释往往体现了代码意图,现在看不懂英语,就抓瞎了。看来,一定得好好学英语。
History.txt
Manifest.txt
README.txt
Rakefile
这几个文件,只是辅助文件。其中我发现,在
https://rubygems.org/
上,点击对应版本后,点击“文档”,是链接到“README.txt”文档的。
学习读源码是最好的学习方式,我就奇怪,网上这么多用ruby的人,为什么读gem源码的,就这样少呢?真是奇怪。
今天就慢慢读吧。


猜你喜欢

转载自blog.csdn.net/woshiyilitongdouzi/article/details/80784223