Rspec,将spec文件映射到测试中的ruby文件

Rspec,将spec文件映射到测试中的ruby文件,ruby,rspec,lazy-evaluation,Ruby,Rspec,Lazy Evaluation,我想要的是一种不必在每个spec文件中“要求”被测试的类的方法 因此,希望有一种方法可以设置被测源代码的根,并且rspec可以自动映射我的测试,或者任何其他方法可以自动将spec映射到ruby文件 在Rspec for rails中,这种情况神奇地发生了,但这不是rails项目,我找不到任何有用的信息。您需要做的是重新定义对象。const\u missing 找到此基础,修改它以满足您的需要(设置正确的路径等): 我假设您的项目中有一个lib文件夹和一个spec文件夹,其中分别有代码和spec。

我想要的是一种不必在每个spec文件中“要求”被测试的类的方法

因此,希望有一种方法可以设置被测源代码的根,并且rspec可以自动映射我的测试,或者任何其他方法可以自动将spec映射到ruby文件


在Rspec for rails中,这种情况神奇地发生了,但这不是rails项目,我找不到任何有用的信息。

您需要做的是重新定义
对象。const\u missing

找到此基础,修改它以满足您的需要(设置正确的路径等):


我假设您的项目中有一个lib文件夹和一个spec文件夹,其中分别有代码和spec。创建一个
spec/spec\u helper.rb
并添加

 # project_name/spec/spec_helper.rb
 $: << File.join(File.dirname(__FILE__), "/../lib") 
 require 'spec' 
 require 'main_file_within_lib_folder_that_requires_other_files'

如果不希望在每个等级库文件的顶部使用等级库辅助程序,可以使用spec-r spec/spec\u helper.rb运行等级库(或者修改rake spec任务以使用-r选项),如果使用自动测试呢?
 # project_name/spec/spec_helper.rb
 $: << File.join(File.dirname(__FILE__), "/../lib") 
 require 'spec' 
 require 'main_file_within_lib_folder_that_requires_other_files'
 require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')