`
zooks
  • 浏览: 687 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

加速测试 test:recent on drb server

阅读更多
加速测试 test:recent on drb server

rspec可以加上参数--drb,加快测试速度。如果不用rspec,标准方法写测试,每次执行rake,加载环境会损耗相当多的时间。每次测试都要对着屏幕发呆18秒,这是在是太蠢了…… 跟踪发现最主要耗时操作是调用了两次 Rails::Initializer.run(:process, ...) (似乎第一次是加载RAILS环境,第二次是加载测试库)

我简单的写了2个RAKE任务,用DRB来解决这个问题。


app/lib/tasks/test_server.rake
require 'drb/drb'


class TestServer

  def run(stdout, stderr)
    $stdout = stdout
    $stderr = stderr

#    puts ">>>> rake test:recent"
#    time_begin = Time.now

    # test:recent on DRb server
    Rake::Task["test:recent"].invoke

#    time_elapse = Time.now - time_begin
#    puts "  << cost #{time_elapse}s"
  end
end


# rake test:server
# rake test:remote
namespace :test do

  desc 'Run test server on DRb'
  task :server => :environment do
    DRb.start_service("druby://localhost:8999", TestServer.new)
    puts "ready"
    DRb.thread.join
  end

  desc 'Run recent tests on remote server.'
  task :remote do
    DRb.start_service
    remote = DRbObject.new_with_uri("druby://localhost:8999")
    remote.run($stdout, $stderr)
  end

end



先启动服务
rake test:server

然后用下面的命令,实现 rake test:recent 的快速版
rake test:remote



思路很简单,加载环境的动作,都丢在DRb server
第一次 rake test:remote 还是要加载库环境,但以后再访问就不用了

在DRB只实现了 rake test:recent 这个频率最高的动作,如果需要,可以自己去扩展



期待更好的建议
分享到:
评论

相关推荐

    system-test:Vespa系统测试

    很好地支持了多节点测试,因为该框架主要基于使用DRb(分布式Ruby)的RPC调用。 在Vespa安装中的节点之一的上下文中执行用于提供数据,检查联机索引或进行查询等的方法。 每个节点都必须运行一个名为node_server.rb...

    BIST电路在嵌入式非易失性存储器可靠性测试中的应用

    这里简单介绍BIST故障测试,增加了详细的可靠性测试并得到了实验数据,包括DRB(数据保持),耐久性(擦/写循环),HTOL(高温操作寿命),LTOL(低温操作寿命)。基于存储器可靠性测试的目的,采用了BIST测试的方法...

    搭建Rails测试环境2: Autotest和Spork的安装和配置

    在Ruby on Rails开发中,测试是确保代码质量与应用程序稳定性的重要环节。Rails提供了多种测试工具,Autotest和Spork就是其中两个常见的辅助测试工具。本文将详细介绍如何在Rails环境中安装和配置这两个工具。 首先...

    DRB System 1125.pptx

    - 由于无法使用常规的DRB系统进行记录,因此需要开发一款适用于当前阶段的DRB系统初版,以便能够快速上线并实现统计和记录功能。 ### 二、DRB系统的开发思路与挑战 **开发思路**: - 参考SMIC DRB系统及SEDA系统...

    Report DRB.xls

    Report DRB

    DRB System 1130.pptx

    根据提供的文档内容,我们可以推断出DRB System 1130主要涉及的是一个用于半导体制造过程中的缺陷管理和处理流程的系统。以下是对该系统的关键知识点进行详细解析: ### DRB系统简介 DRB(Defect Review Board)...

    DrB_libraries-源码.rar

    7. **测试**:如果源码库是高质量的,通常会包含单元测试和集成测试代码,使用诸如JUnit、pytest或unittest等测试框架。 8. **文档**:源码库可能包含README文件或其他形式的文档,解释库的用途、如何安装和使用,...

    Python库 | drb_impl_xml-1.0a1-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:drb_impl_xml-1.0a1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Distributed Ruby

    - **Server端**:在Server端,DRb使用`DRb::DRbServer`实例来处理远程方法调用请求。这个实例负责接收来自客户端的消息,并将它们分发到相应的对象方法。 - **Client端**:客户端则负责向服务器发送请求并接收响应。...

    PyPI 官网下载 | drb_impl_http-1.0.0a0-py3-none-any.whl

    资源来自pypi官网。 资源全名:drb_impl_http-1.0.0a0-py3-none-any.whl

    大工14秋工程招投标与合同管理在线测试3习题与答案.doc

    6. **DRB(Dispute Resolution Board)决策**:在收到DRB建议后的14天内,如果双方都没有要求仲裁,该建议将具有约束力(选项B)。 7. **工程计量方法**:均摊法是按合同工期平均计量的一种方法(选项A),适用于...

    The HLA-DRB1 Shared Epitope (SE)-associated DR-DQ Haplotypes is Predominantly Associated with Both Anti-Cyclic Citrullinated Peptides (CCPs) antibodies-Positive and -Negative Rheumatoid Arthritis in Han Population

    汉族人群中HLA-DRB1共同表位相关的DR-DQ单倍型与CCP阳性及CCP阴性类风湿关节炎相关性研究,刘栩,郭建萍,目的 研究在中国汉族人群中,人类白细胞抗原HLA-DRB1,DQA1,DQB1单倍型与类风湿关节炎易感性及其特异性抗体...

    5G NR SDAP相关协议解析.docx

    - **DRB-ToAddMod**:此字段指示了哪些DRB需要添加或修改,并且可以包含有关SDAP层映射规则的信息。 - **SDAP-Config**:直接与SDAP层配置相关联,提供了关于QoS流映射规则的关键细节。 #### 三、PDU Session ...

    38523SDAP相关介绍7.1.4.docx

    2. **流程2**:在相同的状态下,如果多个DRB配置了上行(UL)SDAP头部,UE需要构建包含头部的SDAP PDU,并依据预先存储的QoS流到DRB的映射规则将它们映射到相应的DRB。 3. **流程3**:当UE收到一个带有RDI(重传...

    5G SA接入信令介绍.doc

    16. **DRB Establishment**:gNodeB根据QoS Flow属性和MML策略将它们映射到DRB,通过RRCReconfiguration消息发起DRB建立请求。 17. **RRCReconfigurationComplete (DRB)**:UE建立DRB后,向gNodeB发送...

    5G VONR功能开启及参数设置建议.xlsx

    PDCP-&gt;profile0x0001:drb5qi='1' PDCP-&gt;profile0x0001:drb5qi='2'" 入网阶段即部署 编码速率自适应 是 否 编码速率自适应, 基站侧支持,目前没有终端支持该功能,所以参数评审的时候把这个功能去掉了 RLC分段...

Global site tag (gtag.js) - Google Analytics