Tag: testunit

是什么让testunit或其他nunit样式框架成为一个好的失败消息?

在Ruby的测试/单元和其他类似的nunit样式框架中,什么是一个好的失败消息? 失败消息是否仅描述预期值与预期值的匹配程度如何? assert_match(“hey”, “hey this is a test”, “The word does not exist in the string”) 它应该描述你预期会发生什么吗? assert_match(“hey”, “hey this is a test”, “I expected hey to be in the string”) 它应该描述为什么你希望这种行为发生吗? assert_match(“hey”, “hey this is a test”, “Program should provide a greeting”) 它应该描述您认为测试可能失败的原因吗? assert_match(“konnichiwa”, “konnichiwa this is a test”, “Program failed to use supplied […]

如何使用Test :: Unit跳过某些测试

在我的一个项目中,我需要与几个后端系统协作。 其中一些有些缺乏文档,部分因此我有一些测试代码与一些测试服务器交互只是为了看到一切按预期工作。 但是,访问这些服务器的速度非常慢,因此我不希望每次运行测试套件时都运行这些测试。 我的问题是如何处理你想跳过某些测试的情况。 目前我使用环境变量’BACKEND_TEST’和条件语句来检查是否为我想跳过的每个测试设置了变量。 但有时我想跳过测试文件中的所有测试,而不必在每个测试的开头添加额外的行。 必须与测试服务器交互的测试并不多,因为我在其他情况下使用flexmock。 但是,你不能嘲笑自己远离现实。 从这个问题的标题可以看出,我正在使用Test :: Unit。 此外,如果它有任何区别,该项目是一个Rails项目。

是否仍然可以在导轨4中使用测试单元?

从Rails 3.2升级到Rails 4之后,我的应用程序正常运行,但我用测试单元编写的测试是一场灾难。 据传Minitest与测试单元“兼容”。 但是,如果我尝试使用(现在捆绑的)Minitest,那么存在一系列差异 – 从assert *语句名称和参数到(很明显)许多其他大事和微妙的事情。 如果我试图避免使用Minitest并尝试将我的测试单元gem保留在我的Gemfile中,则rake测试会爆炸,说, undefined method ‘refute_predicate’ for class ‘ActiveSupport::TestCase’ 这是因为已经打电话 require ‘rails/test_help’ 🙁 我一直在寻找,但还没有想出任何继续使用测试单元的方法。 唯一的替代方案似乎是(对我们来说,大规模)重构我们的测试代码,因为我们80%的测试都会以某种方式破坏,或者Minitest与测试单元的不兼容性。 然而阅读http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/和http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-3- 2-to-rails-4-0我发现实质上没有提到这一点 – 我觉得必须遗漏一些东西。 是否有可能使Minitest更系统地与测试单元兼容? 或者继续在Rails 4中使用测试单元?

我如何获得RSpec的共享示例,例如Ruby Test :: Unit中的行为?

是否有类似于RSpec for test :: Unit测试中的shared_examples的插件/扩展名?

为什么Test :: Unit测试版启动速度如此之慢?

>rails -v Rails 1.2.6 >ruby -v ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32] 当我运行这样的测试夹具(测试轨道模型类)时,开始执行这些测试需要20-30秒(显示“已加载的套件……”)。 是什么赋予了? >ruby test\unit\category_test.rb require File.dirname(__FILE__) + ‘/../test_helper’ class CategoryTest ‘Apparel’}) assert obCategoryEntry.save, obCategoryEntry.errors.full_messages.join(‘, ‘) assert_equal 1, Category.count assert_not_nil Category.find(:all, :conditions=>”name=’Apparel'”) end #.. 1 more test here end 这个是使用没有灯具的MySql DB的Rails。 这次它启动时间为30秒+。

是否可以增强rake测试任务并将测试结果合并在一起?

我正在为我的sidekiq工人编写测试,我希望他们在终端输入“rake”时运行。 我有这个工作 – 我将以下内容添加到我的Rakefile中: namespace :test do Rake::TestTask.new(:workers) do |t| t.libs << "test" t.pattern = 'test/workers/**/*_test.rb' end end Rake::Task[:test].enhance ["test:workers"] 当我运行rake时,我得到这样的东西作为我的输出: Run options: –seed 51172 # Running tests: SS Finished tests in 0.005594s, 357.5259 tests/s, 0.0000 assertions/s. 2 tests, 0 assertions, 0 failures, 0 errors, 2 skips Run options: –seed 17561 # Running tests: S……………………………………..SSSS..SSSSS…… […]

使用Ruby Test Unit在一个脚本中并行运行多个测试

我在一个ruby脚本中有4个测试,我使用命令运行 ruby test.rb 输出看起来像 Loaded suite test Started …. Finished in 50.326546 seconds. 4 tests, 5 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed 我想要实现的是,并行运行所有4个测试而不是顺序测试。 像4个线程一样运行一个测试,有效地将执行时间减少到4个测试中最慢的时间+并行执行的时间很少。 我遇到了这个 ,但这似乎并行运行多个ruby测试文件 – 比如说如果我有test1.rb,test2.rb test3.rb,那么所有三个文件将并行运行。 任何帮助将不胜感激。

如何在Ruby中inheritance抽象unit testing?

我有两个unit testing,应该使用略有不同的设置方法共享许多常见测试。 如果我写的东西像 class Abstract < Test::Unit::TestCase def setup @field = create end def test_1 … end end class Concrete1 < Abstract def create SomeClass1.new end end class Concrete2 < Abstract def create SomeClass2.new end end 然后Concrete1似乎没有从Abstractinheritance测试。 或者至少我不能让它们在日食中运行。 如果我为包含Concrete1的文件选择“Run all TestCases”,那么即使我不想要它也会运行Abstract。 如果我指定Concrete1那么它根本不运行任何测试! 如果我在Concrete1中指定test_1,那么它会抱怨它无法找到它(“uncaught throw:invalid_test(ArgumentError)”)。 我是Ruby的新手。 我在这里想念的是什么?

如何使用lib minitest或Test:Unit对unit testing进行着色?

我想在我的开发环境中让unit testing输出颜色。 但是,我无法在Linux(Debian和Ubuntu)上运行它。 当我包含以下库时: require ‘minitest/autorun’ require ‘minitest/unit’ require ‘minitest/pride’ 我明白了: /usr/local/rvm/gems/ruby-1.9.2-p136/gems/minitest-2.3.1/lib/minitest/pride.rb:35:in `’: undefined method `output’ for MiniTest::Unit:Class (NoMethodError) 由代码引起: MiniTest::Unit.output = PrideIO.new(MiniTest::Unit.output) 我见过一个有效的Rspec变种 。 不幸的是,我的Ruby知识还不足以看出差异。

minitest,test :: unit和rails

我读到某个地方’minitest’是“ruby 1.9.2+的新测试::单位”。 但ruby 1.9.3似乎包括test :: unit 和 minitest ,这是真的吗? 在默认的rails测试中,如Rails测试指南中所述 ……像ActiveSupport::TestCase , ActionController::TestCase这样的东西是使用Test::Unit还是Minitest ? 在rails指南中,它显示了如下定义的测试示例: test “should show post” do get :show, :id => @post.id assert_response :success end 在定义Test::Unit或Minitest的文档中没有提到该语法, test string ,而不是定义名称类似test_something方法。 来自哪里? Rails是否添加它,或者它实际上是…的一部分……无论是测试lib rails使用的是什么? PS:请不要告诉我“只使用rspec”。 我知道rspec。 我试图在rails的上下文中探索stdlib替代方案。