【问题标题】:How to skip certain tests with Test::Unit如何使用 Test::Unit 跳过某些测试
【发布时间】:2010-05-28 07:51:21
【问题描述】:

在我的一个项目中,我需要与多个后端系统协作。其中一些在文档中有些缺乏,因此我有一些测试代码与一些测试服务器交互只是为了看到一切都按预期工作。但是,访问这些服务器非常慢,因此我不想每次运行我的测试套件时都运行这些测试。

我的问题是如何处理您想跳过某些测试的情况。目前,我使用环境变量“BACKEND_TEST”和条件语句来检查是否为我想跳过的每个测试设置了变量。但有时我想跳过测试文件中的所有测试,而不必在每个测试的开头添加额外的行。

必须与测试服务器交互的测试并不多,因为我在其他情况下使用 flexmock。但是,你不能在现实中嘲笑自己。

从这个问题的标题可以看出,我使用的是 Test::Unit。此外,如果有任何不同,该项目就是 Rails 项目。

【问题讨论】:

    标签: ruby-on-rails ruby testing testunit


    【解决方案1】:

    New Features Of Test Unit 2.x 建议 test-unit 2.x(gem 版本,而不是 ruby​​ 1.8 标准库)允许您省略测试。

    【讨论】:

    • 谢谢!实际上我之前读过这张幻灯片,但从来没有看过 2.x 是否真的发布了。它有,我会仔细研究一下。
    • 请注意,省略测试会使它们失败。如果你不想要一堆失败的测试,你可以试试 Minitest 的 skip 或者只是在你的测试顶部添加一个关于某些条件的 return 语句。
    • @coberlin - 注意:仅当没有给出块时,省略才会引发异常。您可以将测试主体作为块传递。
    【解决方案2】:

    上一个答案中提到的特性包括omit()方法和omit_if()

    def test_omission
      omit('Reason')
      # Not reached here
    end
    

    def test_omission
      omit_if("".empty?)
      # Not reached here
    end
    

    发件人:http://test-unit.rubyforge.org/test-unit/en/Test/Unit/TestCaseOmissionSupport.html#omit-instance_method

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多