Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果我正在测试一个rspec扩展,如何抑制测试失败的结果?

如果我正在测试一个rspec扩展,如何抑制测试失败的结果?
EN

Stack Overflow用户
提问于 2015-07-27 21:52:34
回答 1查看 143关注 0票数 1

我正试图为rspec的扩展编写规范。

这就是我试着测试的要点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
require 'rspec-let-and-after-extension'

RSpec.describe "let(...).and_after" do
  it 'is called if the `let` is invoked even if the example fails' do
    call_order = []

    RSpec.describe do
      let(:foo) { }.and_after { call_order << :and_after }
      it { foo; call_order << :example; raise 'failed!' }
    end.run

    expect(call_order).to eq [:example, :and_after]
  end
end

其中一个重要的行为是,如果运行该示例失败,清理代码仍然运行。因此,我通过记录调用顺序并从示例中引发异常来测试这一点。

问题是,当我运行它时,它将这个块看作第二个示例,然后在出现错误时失败:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.F

Failures:

  1)  
     Got 0 failures and 2 other errors:

     1.1) Failure/Error: it { foo; call_order << :example; raise 'failed!' }
          RuntimeError:
            failed!
          # ./spec/spec.rb:43:in `block (4 levels) in <top (required)>'
          # ./spec/spec.rb:44:in `block (2 levels) in <top (required)>'

     1.2) Failure/Error: it { foo; call_order << :example; raise 'failed!' }
          RuntimeError:
            failed!
          # ./spec/spec.rb:43:in `block (4 levels) in <top (required)>'

Finished in 0.00167 seconds (files took 0.08011 seconds to load)
2 examples, 1 failure

Failed examples:

rspec ./spec/spec.rb:43 #  

正如您所看到的,输出确实有一个点,所以实际的例子通过了。但是还有一个F,因为它看到了内部的例子,运行它,毫不奇怪,其中一个失败了。

如何使rspec不将这个嵌套的示例视为它应该运行的示例之一,从而使这个示例用一个点完成?

(如果您想知道rspec开发人员自己对他们的测试做了什么,看起来他们使用的是黄瓜。他们用黄瓜是因为他们也搞不懂这个吗?:)

EN

回答 1

Stack Overflow用户

发布于 2015-07-27 23:03:53

您可以使用新的沙箱API (在3.2+中可用)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RSpec.configure do |rspec|
  rspec.around do |ex|
    RSpec::Core::Sandbox.sandboxed do |config|
      # re-configure any configuration defined by your extension here
      # before allowing the example to run. The sandbox runs with a fresh
      # config instance, which means any configuration you have set in
      # `rspec-let-and-after-extension` will not apply while the example
      # is running.
      # config.extend MyExtensionModule
      ex.run
    end
  end
end
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31668319

复制
相关文章
Rails测试:Rspec
One: Case Study Debug sucks, and test rocks! If you use rails, then you should know how to use RSpec to test your rails app. I use a simple case to practice basic RSpec. If you want practice, go to check the saasbook/bdd-tdd-cycle practice at the end of th
用户2183996
2018/06/28
1.1K0
如何解读性能测试监控结果
下方查看历史精选文章 重磅发布 - 自动化框架基础指南pdfv1.1 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 在性能测试系列前面几篇文章中我们比较详细的介绍了相关的知识 从终端用户感受来体验性能指标度量 如何建立有效的性能指标监控及诊断调优体系 如何有效的选择性能测试工具 简单谈下性能测试 jmeter性能测试实践注意事项 如何进行有效的性能测试 所有性能相关的文章,均会同步发布至性能测试专用公众号,
苦叶子
2022/04/21
5920
如何解读性能测试监控结果
性能测试入门-LoadRunner测试结果分析
Analysis基础知识 1、创建会话 2、启动Analysis 3、整理结果 使用Analysis图 可添加的图有: 放大、缩小图片、添加注释 分析图结果 1、Running Vuser
用户6367961
2020/09/01
7850
Monkey测试3——Monkey测试结果分析
Monkey测试结果分析 一. 初步分析方法: Monkey测试出现错误后,一般的差错步骤为以下几步: 1、 找到是monkey里面的哪个地方出错 2、 查看Monkey里面出错前的一些事件动作,并手动执行该动作 3、 若以上步骤还不能找出,可以使用之前执行的monkey命令再执行一遍,注意seed值要一样 一般的测试结果分析: 1、 ANR问题:在日志中搜索“ANR” 2、 崩溃问题:在日志中搜索“Exception” 二. 详细分析monkey日志: 将执行Monkey生成的log,从手机中导出并打开查看该log;在log的最开始都会显示Monkey执行的seed值、执行次数和测试的包名。 首先我们需要查看Monkey测试中是否出现了ANR或者异常,具体方法如上述。 然后我们要分析log中的具体信息,方法如下: 查看log中第一个Switch,主要是查看Monkey执行的是那一个Activity,譬如下面的log中,执行的是com.tencent.smtt.SplashActivity,在下一个swtich之间的,如果出现了崩溃或其他异常,可以在该Activity中查找问题的所在。 :Switch:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.tencent.smtt/.SplashActivity;end   // Allowing start of Intent {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]cmp=com.tencent.smtt/.SplashActivity } in package com.tencent.smtt 在下面的log中,Sending Pointer ACTION_DOWN和Sending Pointer ACTION_UP代表当前执行了一个单击的操作; Sleeping for 500 milliseconds这句log是执行Monkey测试时,throttle设定的间隔时间,每出现一次,就代表一个事件。 SendKey(ACTION_DOWN) //KEYCODE_DPAD_DOWN 代表当前执行了一个点击下导航键的操作; Sending Pointer ACTION_MOVE 代表当前执行了一个滑动界面的操作。 :Sending Pointer ACTION_DOWN x=47.0 y=438.0 :Sending Pointer ACTION_UP x=47.0 y=438.0 Sleeping for 500 milliseconds :SendKey (ACTION_DOWN): 20 //KEYCODE_DPAD_DOWN :SendKey (ACTION_UP): 20 //KEYCODE_DPAD_DOWN Sleeping for 500 milliseconds :Sending Pointer ACTION_MOVE x=-2.0 y=3.0 :Sending Pointer ACTION_MOVE x=4.0 y=-3.0 :Sending Pointer ACTION_MOVE x=-5.0 y=-3.0 :Sending Pointer ACTION_MOVE x=3.0 y=4.0 :Sending Pointer ACTION_MOVE x=-4.0 y=1.0 :Sending Pointer ACTION_MOVE x=-1.0 y=-1.0 :Sending Pointer ACTION_MOVE x=-2.0 y=-4.0 如果Monkey测试顺利执行完成,在log的最后,会打印出当前执行事件的次数和所花费的时间;// Monkey finished代表执行完成。Monkey执行中断,在log的最后也能查看到当前已执行的次数。Monkey执行完成的log具体如下: Events injected: 6000 :Dropped: keys=0 pointers=9 trackballs=0 flips=0 ## Network stats: elapsed time=808384ms (0ms mobile, 808384ms wifi, 0msnot connected) // Monkey finished
流柯
2018/08/30
1.6K0
如何避免移动测试自动化失败
顾翔老师开发的bugreport2script开源了,希望大家多提建议。文件在https://github.com/xianggu625/bug2testscript,
顾翔
2019/12/12
6030
jmeter 测试结果解读
Apache JMeter的默认时间单位是毫秒(milliseconds)。无论是设置响应超时时间,还是配置各种计时器,都是以毫秒为单位的
运维开发王义杰
2023/08/16
6390
jmeter 测试结果解读
如果有一千张表,如何测试?
在我们日常的测试过程中,大部分的测试人员几乎不会去关注数据库表的结构、字段的属性、主外键关系等测试
苦叶子
2018/12/27
3470
如果有一千张表,如何测试?
如果做好测试需求分析?
产品需求是要做什么,需求主要来源于老板需求、客户需求、市场/运营/技术需求、竞品分析、用户调研等等,而测试需求就是要测什么,主要依赖产品需求,简单来讲,产品要做什么,我们就得测什么。
用户10443079
2023/03/22
2940
如果做好测试需求分析?
我是如何做测试组长的
我们性能测试组算我总共5个人,人员少,任务重。将测试人员分为2组,每组一名小组长,一个人兼顾几个职能(脚本开发,监控,数据准备,分析),即要完成任务,又要保证质量。测试计划,测试方案由小组长制定,测试组长参与评审,测试过程采用日报形式实时报告,有问题当面沟通。测试报告由小组长提交,在提交客户评审前进行内部评审。测试完成之后必须进行测试总结,将一些重点难点进行分享,加入到知识库中。
软件测试君
2019/06/03
1.5K0
LoadRunner压力测试:测试报告结果分析
下图说明本次测试运行的最大并发数为2000,总吞吐量为37,770,860,276字节,平均每秒吞吐量为25,349,571字节,总的请求数为6,952,027,平均每秒的请求为4,665,29。对于吞吐量,单位时间内吞吐量越大,说明服务器的处理能越好,而请求数仅表示客户端向服务器发出的请求数,与吞吐量一般是成正比关系。
全栈程序员站长
2022/09/09
2.8K0
LoadRunner压力测试:测试报告结果分析
测试横向扩展(一)
之前一篇文章《思考功能测试》说了功能测试基本功,今天聊下功能测试做深时的横向扩展,也是对自己测试能力的进一步提升,从我个人经验总结选出以下三个大方面探讨下:
CeshirenTester
2022/06/20
4180
前端测试题: 数组扩展的fill( )函数,[1,2,3].fill(4)的结果是?
考核内容:对fill( )函数的了解和使用 题发散度: ★★ 试题难度: ★ 解题思路: fill() 方法 用于将一个固定值替换数组的元素。 语法 array.fill(value, start, end) value 必需。填充的值。 start 可选。开始填充位置。 end 可选。停止填充位置 (默认为 array.length) fill函数的参数会把原数组的每个元素填充成指定的参数。 参考代码: 答案: D、[4,4,4]
舒克
2020/02/26
3.1K0
Effective Testing with RSpec 3 (第一部分:入门)
RSpec 3是一个高效的Ruby测试框架。 我们说生产效率很高,因为关于它的一切 - 它的样式,API,库和设置 - 都是为了在编写出色的软件时为你提供支持。
不知雨
2018/09/06
2K0
基于TSUNG对MQTT进行压力测试-测试结果
https://www.cnblogs.com/lingyejun/p/7898873.html
翎野君
2023/05/12
4240
基于TSUNG对MQTT进行压力测试-测试结果
我眼中的性能测试
笔者专注性能测试的时间大概有5年时间,其间也经历了性能测试主流工具从LR到Jmeter转变,监控工具从最早的Linux原生命令到界面花里胡哨的Glances、Zabbix等等。技术架构从单一的节点到多集群,业务对性能的要求越来越高,对于性能测试,有一点小的体会,后续会分多篇来聊聊。今天先说说我对性能测试的一些感观。
CKL的思考
2023/02/01
2720
我眼中的性能测试
笔者专注性能测试的时间大概有5年时间,其间也经历了性能测试主流工具从LR到Jmeter转变,监控工具从最早的Linux原生命令到界面花里胡哨的Glances、Zabbix等等。技术架构从单一的节点到多集群,业务对性能的要求越来越高,对于性能测试,有一点小的体会,后续会分多篇来聊聊。今天先说说我对性能测试的一些感观。
程序媛淼淼
2022/09/01
2580
测试框架-unittest-测试套件、结果输出到文件
unittest.main()方法会搜索该模块下所有以test开头的测试方法,并自动执行它们。
wangmcn
2022/07/25
7250
测试框架-unittest-测试套件、结果输出到文件
Python-测试-unittest-04-测试结果文件输出
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2 这个系列讲讲Python的测试版块,江湖有说,没有经过测试的代码就直接投入生产环境使用,是不地道的,基于此,还是学习测试吧 今天继续讲讲单元测试,将测试的结果输出到一个文本文件 Part 1:代码 import unittest from python_test_example.be_tested_02 import * class Tes
zishendianxia
2020/02/24
9970
Python-测试-unittest-04-测试结果文件输出
测试技能扩展 | Nginx知识
nginx几乎是众多大型网站必用技术, 大多数情况下, 我们不需要亲自去配置,但了解他在应用程序中的角色, 以及如何解决这些问题是非常有帮助的.
louiezhou001
2020/04/21
4850
测试技能扩展 | Nginx知识
点击加载更多

相似问题

rspec标题测试失败,我正在设置标题吗?

22

如果全部运行,Rspec测试将失败

20

RSpec测试失败

11

Rspec测试失败

14

Rspec测试失败

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文