我愚蠢地对我的项目进行了一些更改,在那里我安装了一些rails gem(我的项目是非rails),现在当我尝试运行我的测试时,rspec找不到我的spec_helper文件,即使它包含在spec文件夹中。
以前在我的测试中,我在每个测试规范文件的顶部都要求'spec_helper'并且它们工作正常。在我更改之后,使用此方法无法找到规范帮助程序。如果我将测试直接指向spec_helper文件,如下所示:'require ../../spec_helper',他们会找到规范帮助程序并运行测试。然而,这对我来说不是一个好的解决方案,因为我在许多不同的目录和子目录中进行了测试,因此我需要使用各自正确的路径更新所有spec文件。
根据此页面:“https://www.relishapp.com/rspec/rspec-core/docs/configuration/default-path”看来spec文件夹不再是默认路径,因此不在加载路径上,因此找不到规范帮助文件。
有谁知道如何将spec文件夹设置为默认路径?然后根据我的知识将其添加到加载路径中,然后rspec可以找到spec_helper文件。
在这个问题上任何帮助都会很棒!
谢谢!
根据要求提供Rake文件:
require "rake"
require 'timeout'
require 'socket'
def ping addr
require 'rubygems'
require 'net/http'
retval = false
begin
retval = !Net::HTTP.get(URI(addr)).empty?
rescue
retval = false
end
retval
end
task :default => [:runTest]
task :startServer do
if(not ping("http://localhost:4444"))
puts "Starting server"
SELENIUM_JAR = "../selenium-server/selenium-server-standalone-2.19.0.jar"
sh "java -jar #{SELENIUM_JAR} 2>&1 > /dev/null &"
while not ping("http://localhost:4444")
sleep 3
end
else
puts "Server already started"
end
end
task :stopServer do
if(ping("http://localhost:4444"))
puts "Shutting Down Server"
sh "curl http://localhost:4444/selenium-server/driver /?cmd=shutDownSeleniumServer"
else
puts "Server not started"
end
end
task :runTest, [:cms_security, :ma] do|t, args|
if(not ping("http://test:4444"))
puts "Server has not bee started"
Rake::Task['startServer'].execute
end
sh "cucumber ./features"
puts "Done running tests"
end