假设我有一个这样的测试:classMyUnitTest我的测试用例是破坏性的,我需要在测试之间重新生成输入。因此,一次只运行一个测试用例会很有用。目前,我的方法是评论我不想执行的测试,但肯定有更好的方法吗?那么,例如,当我执行测试时,如何只运行test_first? 最佳答案 使用--namePATTERN参数来过滤出您要运行的测试名称。D:\Projects>rubytest.rbLoadedsuitetestStarted...Finishedin0.000000seconds.3tests,0assertions,0failu
我正在处理MichaelHartl'sRailstutorial并且在使用匹配器重构时无法通过Rspec测试。终端输出Failures:1)AuthenticationloginwithinvalidinformationFailure/Error:it{shouldhave_error_message('Invalid')}NoMethodError:undefinedmethod`has_error_message?'for##./spec/requests/authentication_pages_spec.rb:21:in`block(4levels)in'spec/suppo
我一直在使用内置的OSX“say”命令来表示长时间运行的测试结束。简单方便。我想让它说出结果的最后一行,上面写着“6次测试,18次断言,0次失败,0次错误”,但仍保持持续输出。任何想法如何做到这一点?我试过:rubyoverlay_test.rb|tail-n1|say但这不会在测试发生时输出测试结果。让它只说“0次失败,0次错误”这一行的最后两部分的加分项。 最佳答案 您可以使用tee将输出定向到多个文件/进程(这里,say和STDOUT):rubyoverlay_test.rb|tail-n1|tee>(say)作为奖励,使用s
现在似乎每个人都在使用rspec,但rails仍然默认与test::unit捆绑在一起。rspec与测试单元相比有什么主要优势吗?很难获得关于这个主题的直接信息... 最佳答案 在这些讨论中通常非常关注语法,这当然是主观的,但RSpec提供了一些有用的功能,这些功能在测试/单元、minitest或其扩展库中是看不到的。对我来说,三大巨头是:可读输出(TURN对此有帮助,但它没有打印出您需要复制以运行失败的单个示例的命令之类的东西)。合理的CTRL-C。在rspec-2中,当你按下CTRL-C时,那一刻正在运行的示例结束(你可以第二次
使用RubyonRails,当您使用rakedb:seed或db:reset重置或重新播种数据库时-您如何指定操作要处于哪种模式(开发/测试/生产)?我使用Sqlite进行开发,使用postgresql进行测试和生产——但使用不同的连接参数。我似乎无法控制Rails在我的开发箱(我在虚拟机Ubuntu13.l0中运行)或在Heroku上运行的模式。此外,当您在Heroku上运行应用时,您如何决定在哪种模式(开发/测试/生产)中运行您的应用?Heroku文档建议的方式不起作用(也就是说,将单行放入Procfile网络:bundleexecunicorn-p$PORT-E$RACK_ENV
我有一个在Sinatra应用程序范围内运行的方法,用于检查请求是否安全:secure_request?request.env['HTTPS']=='on'end这工作正常,但是当我从另一个不共享Sinatra应用程序范围的类调用它时,它会尝试发出机架测试请求,并引发错误:参数数量错误(1为0).那么,有没有办法显式指定Sinatra应用程序请求,例如self.request或app.request? 最佳答案 从另一个类调用request方法闻起来像是糟糕的代码设计,将另一个类与您的应用程序紧密耦合。secure_request?在
我想获取正在通过rack-test测试的应用程序实例,以便我可以模拟它的一些方法。我以为我可以简单地将应用程序实例保存在app方法中,但由于某些奇怪的原因不起作用。看起来rack-test只是使用实例来获取类,然后创建自己的实例。我做了一个测试来证明我的问题(它需要gem“sinatra”、“rack-test”和“rr”才能运行):require"sinatra"require"minitest/spec"require"minitest/autorun"require"rack/test"require"rr"describe"instantiatedapp"doincludeRa
我尝试使用partitionmethodfromtheStringmodule对字符串进行分区.但是,这样做时:puts"test".partition("s")我收到以下错误消息:Line1:in`partition':wrongnumberofarguments(1for0)(ArgumentError)fromt.rb:1我相信Ruby调用了partitionmethodfromtheEnumerablemodule,而不是我想要的来自String模块的那个。如何让Ruby调用所需的方法? 最佳答案 作为injekt已经指出,
有问题InRuby,howtoIcontroltheorderinwhichTest::Unittestsarerun?并想引用test_order=:defined,来回答documentationforTest::Unit::TestCase.test_order说:Setsthecurrenttestorder.Herearetheavailableorder::alphabeticDefault.Testsaresortedinalphabeticorder.:randomTestsaresortedinrandomorder.:definedTestsaresortedind
这里有一个简单的规范来测试这个:require'spec_helper'describeA_controllerdobeforedo@cat_noise="Meow"endit"shoulddonothingbecauseit'semptyandIcreateditjusttotestlogger!"dologger.info"----------Herecomesacatnoise-----------"logger.info@cat_noiselogger.info"-----------Theregoesacatnoise-----------"endend这是我的测试环境的日志