DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录.
  • DmozDir.org
DMOZ目录快速登录入口-免费收录各类优秀网站的中文网站目录.由人工编辑,并提供网站分类目录检索及地区分类目录检索,是站长免费推广网站的有力平台!

Ruby的生态新Ruby开发者

  • Ruby的生态新Ruby开发者

  • 已被浏览: 62 次2020年10月12日    来源:  DMOZ中文网站分类目录
  • Ruby是不仅仅是一个语言的更多。它的工具和流程支持复杂的软件它使创建一个宇宙。这可以压倒新人,所以我已经把一篇文章,将有望使事情更加清楚一点。
    newrubyist

    Ruby是不仅仅是一个语言的更多。它的工具和流程支持复杂的软件它使创建一个宇宙。这可以压倒新人,所以我已经把一篇文章,将有望使事情更加清楚一点。

    版本管理

    比方说,你有两个项目依赖于两个不同版本的宝石。使用新版本的项目未与旧宝石兼容。你是做什么?

    一种选择是只安装你所需要的时间为准宝石。这不是一个好主意,因为一个或两个宝石的版本可能有依赖性的版本错误/不精确在其<代码>的Gemfile 或<代码> gemspec 。那样的问题是很难追查。

    相反,大多数Ruby开发者依靠某种版本管理。不仅版本管理者关注的宝石整齐,但他们分开的Ruby实现也是如此。这可以很容易地测试之间,也就是说,红宝石2.0和Ruby 2.1的差异。

    流行的版本管理解决方案包括RVM,rbenv和乌鲁(Windows)中。

    这里是你将如何开始使用RVM管理红宝石:

    安装RVM。

    <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $ \卷曲-ssl https://get.rvm.io | bash的

    来源RVM脚本在其启动bash兼容的外壳。

    <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $回声 “源$ HOME / .rvm /脚本/ RVM” >>?/ .bash_profile中 < / PRE>

    重新装入外壳。

    <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $源?/ .bash_profile中

    验证RVM脚本已采购。它应打印“RVM是一个功能。”

    <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $型RVM |头-n 1

    安装Ruby 2.0.0。

    <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $ RVM安装2.0.0

    切换到2.0.0。

    <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $ RVM使用2.0.0

    创建2.0.0任命了新的宝石“的实验。”

    <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $ RVM宝石创建实验

    切换到新的宝石。

    <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $ RVM宝石使用实验

    手工艺宝石

    包装代码并不总是在Ruby中的事情。 2003年,rubyforge.org推出为Ruby开发者共享代码的地方。虽然情况好转了一点,开发商仍然对自己,当它来搞清楚如何运行对方的代码。在2003年11月,一些Ruby开发者聚集在一起,决定永远解决问题。在2004年推出的rubygems.org,有了它,在宝石工具。

    RubyGems是用于Ruby库和程序的软件包管理器。这里有一对夫妇的一个可能对创建一个Ruby宝石原因:

      容易与其他开发者共享代码

      项目之间避免重复码

      安装宝石很简单:

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $宝石安装gem_name

      一个典型的宝石项目布局看起来是这样的:

      <预的tabindex =“0”类=“语言红宝石‘> <代码类=’语言红宝石”> - 规格

      - gem_name_spec.rb

      - spec_helper.rb

      - 斌

      - gem_name

      - LIB

      - gem_name.rb

      - gem_name

      - source_file1.rb

      - source_file2.rb

      - 源文件...

      - version.rb

      - 的Gemfile

      - gem_name.gemspec

      - README.md

      - 执照

      - Rake文件

      这是没有必要记住宝石的目录结构。一个简单的方法来生成一个基本的宝石模板与所述捆绑工具。

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $束宝石gem_name

      注:捆扎机可能带有Ruby安装预装,但如果没有,或者如果你想要最新的版本,你可以安装gem:

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $宝石安装捆绑

      如果你不喜欢这样的捆扎机创建模板,还有其他的工具,包括珠宝商和锄头。

      载荷路径

      我们需要审视非明显的问题是新的宝石开发商面临:Ruby的负载路径。比方说,你有一对夫妇的文件在同一目录下(不使宝石,只是一般)。我们会打电话给他们source1.rb和source2.rb。

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”>#source1.rb

      要求“源2”

      #source2.rb

      放的 “hello world”

      看起来不错,但尝试使用该文件,并看看会发生什么。

      <预的tabindex =“0”类=“语言红宝石‘> <代码类=’语言红宝石”> $红宝石source1.rb

      ...... "需要":不能加载这样的文件 - 源2(LoadError)...

      等等,这是怎么回事?即使他们是在同一个目录,source1.rb看不到source2.rb。事实证明,Ruby没有自动包含在其负载路径执行源文件的目录。我们可以告诉它的命令行选项<代码> -I (包括目录)和这样做使这个例子工作(该目录。 - <代码> 是当前目录): <代码类=“ 语言红宝石”> $红宝石-I。 source1.rb

      的Hello World

      或者,您可以<代码>要求的直接路径的文件:

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”>#source1.rb

      要求” ./source2"

      所以,你需要做这样的事情发展的宝石是什么时候?号对于开发测试宝石,源目录可以编程方式添加到Ruby的 $ LOAD_PATH 的全局变量。

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”>#source1.rb

      $ LOAD_PATH.unshift( “”)

      需要 “源2”

      这是用于包括lib文件夹及其所有子目录。您通常会遇到<代码>文件:: expand_path 的相对路径从文件转换为lib文件夹的绝对路径。

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”>#投机/ spec_helper.rb

      LIB = File.expand_path( "../../ LIB",__FILE__)

      $ LOAD_PATH.unshift(LIB),除非$ LOAD_PATH.include?(LIB)

      #现在我们可以要求的lib / gem_name.rb根据需要,可以要求其他的代码

      要求 "gem_name"

      $ LOAD_PATH 变量只是一个数组。 <代码> $ LOAD_PATH.unshift(IIb)的添加目录到数组的开始,以使得它被其他任何操作之前加载。需要注意的是<代码> File.expand_path(“../../ LIB”,__FILE __)指<代码> LIB 的上一级目录和不是两个,因为它看起来像。这是一种常见的跳闸了。 <代码> __ FILE __ 作为第二个参数指定要启动的目录,否则,当前工作目录(一个红宝石在执行)被使用。

      请注意,你不会经常看到的 $ LOAD_PATH 的宝石。一种流行的,如果令人难以置信undescriptive,别名是<代码> $:

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”> $ :.不印字(File.expand_path( "../../ LIB",__FILE __)

      任何支持创业板代码应该相同名称作为宝石的文件夹中。

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”> - LIB

      - gem_name.rb

      - gem_name

      - some_file.rb

      #LIB / gem_name.rb

      要求 "gem_name / SOME_FILE"

      当安装一个宝石,在 LIB 目录中的内容被放置在一个目录已在Ruby的负载路径。因此,负载路径不应该被修改实际的创业板代码内的任何地方,以及宝石的名称应该是唯一的。

      gemspec

      所述的rubygems <代码> gemspec 文件是其中宝石实际的定义之处。该gemspec是必须为了建立一个宝石存在一个文件。

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”>#gem_name.gemspec

      LIB = File.expand_path( “../ LIB”,__FILE__)

      $ LOAD_PATH.unshift(LIB),除非$ LOAD_PATH.include?(LIB)

      需要“gem_name /版本”

      宝石:: Specification.new做| S |

      s.platform =宝石::平台:: RUBY

      s.name = "gem_name"

      s.version = GemName :: VERSION

      s.authors = [ "你的名字"]

      s.email = [ "your@email.com"]

      s.homepage = "https://github.com/your_name/gem_name"

      s.summary =“宝石在几个词”

      s.description =“宝石的较长能解密”

      s.required_ruby_version = "> = 1.9.3"

      s.require_path = "LIB"

      s.files = DIR [LICENSE,README.md, "LIB / ** / *"]

      s.executables = [ "gem_name"]

      s.add_dependency( "的sqlite3")

      s.add_development_dependency( “rspec的”,[ “?> 2.0”])

      s.add_development_dependency( “simplecov”)

      并非所有这些领域的需要。例如,不是每个宝石具有可执行文件和有些人可能喜欢将它们的依赖在一个Gemfile中代替。一定要检查出rubygems.org规范参考。

      的Gemfile

      所述捆绑<代码>的Gemfile 的含有宝石的依赖,它们的版本,以及从何处获得他们的列表。这很容易让其他开发人员同步他们与你的环境,以确保相同的行为。这也使得它可能对于创业板的用户都安装了依赖,而不必知道它们是什么。

      在Gemfile中宝石的依赖性看起来是这样的:

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”>宝石,<版本约束>

      这里是一个Gemfile中的一个示例:

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”>#的Gemfile

      源“https://rubygems.org”

      宝石 "引入nokogiri", "?> 1.4.2"

      组:做开发

      宝石“sqlite3的”

      结束

      组:测试做

      宝石“rspec的”

      宝石“黄瓜”

      结束

      组:生产DO

      宝石“pg"end

      gemspec

      在Gemfiles语法的非显而易见的片是所谓的spermy操作者(<码>?> )。此操作会增加最后一个数字,直到它翻转。所以<代码>宝石 "引入nokogiri", "?> 1.4.2"在语义上等同于<代码>宝石“引入nokogiri”, "> = 1.4.2", "<1.5.0"

      gemspec 线只是告诉捆扎机安装在gemspec文件中列出的依赖关系。许多人喜欢把所有他们在Gemfile中的依赖性,因此不需要此行。

      当你想你的环境与宝石的依赖,只是导航到包含Gemfile中并运行目录同步:

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $束安装

      有时候,项目有依赖关系才有意义特殊环境。如果你不打算使用的宝石生产,你能避免安装制作组中列出的宝石。

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $束安装--without生产

      当捆扎机计算依赖关系,它创建一个名为<代码> Gemfile.lock的。这个文件的目的是开发环境之间有助于避免细微的差别。一个常见的问题是,是否这应该在资源库中去。如果该项目是一个宝石,没有,但如果它是一个应用程序,是 - 是,一个应用程序一般都有自己独立的gemsets,这是重要的,每个人都开发一个应用程序的原因有每一个依赖的完全相同的版本。

      欲了解更多信息,请参阅捆扎机的Gemfile参考和捆扎机理由。

      Rake文件

      <代码>耙是Ruby世界相当于GNU <代码>化妆。不像Gemfiles和gemspecs,Rakefiles大多存在方便。拥有一个像<代码>耙试验的便于自动化系统(或其他开发人员),以测试代码简单的命令,而无需知道什么样的测试系统中使用。

      <预的tabindex =“0”类=“语言红宝石‘> <代码类=’语言红宝石”>#Rake文件

      LIB = File.expand_path( “../ LIB”,__FILE__)

      $ LOAD_PATH.unshift(LIB),除非$ LOAD_PATH.include?(LIB)

      要求“gem_name /版”

      任务:测试做

      系统“rspec的”

      结束

      任务:建立DO

      系统“宝石打造gem_name.gemspec”

      结束

      任务:发布=>:构建千万

      系统 “宝玉推gem_name - #{GemName :: VERSION}”

      如果你想获得怎样Rakefiles工作良好的手感,这里有一个很长的教程。

      宝石大厦

      一旦创业板能正确组织和测试,它可以建立。在宝石构建命令将产生可以在本地安装或推至一个宝石存储库.gem文件。文件名将包括版本在gemspec设置。

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $宝石构建gem_name.gemspec

      $创业板安装gem_name,version.gem

      $宝石推gem_name-version.gem

      现在,在项目中你还是人谁安装的宝石可以使用它:

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”>需要 "gem_name"

      注:有时你会看到<代码>需要 "RubyGems的"的代码。这是当RubyGems的是一个单独的项目缓缴。使用Ruby 1.9开始,RubyGems是标准库的一部分。

      捆绑Exec的

      你会经常命令这样写<代码>束EXEC耙分贝:迁移而不是<代码>耙分贝:迁移。这是因为<代码>束EXEC 保证该命令将使用在的Gemfile 指定的宝石的版本来执行。 RVM创建使用RubyGems打捆gemsets避免这个问题,也应该不会,如果你正在使用Ruby 2.2的一个问题,但它是值得了解。

      Ruby实现

      还有为Ruby语言的许多实现以及红宝石般的语言。最流行的这些包括:

      MRI / CRuby - 用C语言编写的Ruby的参考实现

      JRuby的 - 红宝石在Java虚拟机上运行

      Rubinius的 - 红宝石Ruby编写的,对LLVM运行

      RubyMotion - 商业执行制作原生苹果/ Android应用

      还有许多其他问题。

      似乎有一种常见的误解线程不会在Ruby中工作。线程是在CRuby(MRI)的限制,但他们同时提供两个问题的工作能力。理解并发和并行之间的区别是很重要的:

      并发 - 在重叠的时间段完成两个或更多个任务(即下载一个文件,同时等待查看是否与接口用户交互)。

      并行 - 在多个处理器核同时完成两个或多个任务

      红宝石,MRI,参考实现有一个全局解释锁,因此它只能同时使用一个本地线程。这是什么意思是,Ruby的线程可以同时并行,但无法运行。如果需要在多个处理器上执行的代码在MRI,分叉或必须使用过程协调的一些其他变体(至少直到GIL被去除,如果有的话)。有Ruby实现的是缺乏GIL,包括上面列出的所有其他人。在此之上,分叉在技术上并不提供给JVM,所以JRuby中,你几乎必须使用线程,anyway.I写了一篇文章的更多细节在这里分叉红宝石。

      文档

      当安装了宝石,你会经常看到一个关于安装<代码>的RDoc 和<码>里的文件通知。的RDoc是Ruby嵌入文档生成。 <代码> RI 是<代码>人在终端离线阅读文档样工具。

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $ RI阵列

      $里数组长度#

      $ RI数学:: SQRT

      当使用版本管理器,它可能需要手动生成核心文档。否则,<代码> RI 将只是打印“没有什么已知的关于[任何]”。例如,与RVM 核心文档可以与所生成的<代码>:

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $ RVM文档生成

      这可能需要一段时间。同样地,安装宝石时,生成的文档可以如果宝石是足够复杂采取不方便的时间量的。您可以跳过宝石与文档:

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $宝石安装gem_name --no-的RDoc --no里

      探索Ruby文档的另一种方法是安装撬。撬是到替代IRB 与各种改进,包括看到原来的C源代码方法的能力控制台。

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”> $宝石安装撬撬-doc的

      $撬

      [1]撬(主)>显示法阵列#地图

      自:array.c(C法):

      业主:数组

      可见性:公共

      行数:13

      静态值

      rb_ary_collect(VALUE进制)

      {

      我长;

      VALUE收集;

      RETURN_SIZED_ENUMERATOR(进制,0,0,ary_enum_length);

      收集= rb_ary_new2(RARRAY_LEN(进制));

      对于(I = 0;我

      rb_ary_push(收集,rb_yield(RARRAY_AREF(进制,I)));

      }

      返回收集;

      }

      1]撬(主)> CD阵列

      [2]撬(阵列):1>显示-doc的地图

      自:array.c(C法):

      业主:数组

      可见性:公共

      签名:地图()

      行数:12

      调用一次自我的每个元素的给定块。

      创建包含由块返回的值的新数组。

      另请参见可枚举#收集。

      如果没有块给出一个枚举而是返回。

      A = [ “一”, “B”, “C”, “d”]

      a.collect {| X | X + “!” }#=> [ “一个!”, “B!”, “C!”, “d”!]

      a.map.with_index {| X,I | X * I}#=> [ “”, “B”, “CC”, “DDD”]

      一个#=> [ “一”, “B”, “C”, “d”]

      测试

      比方说,你复制一些随机的存储库,运行一些代码度量,并修正了一些重复。你不熟悉比你制作的文件(S)以外的项目。你怎么知道你没有破坏任何东西?

      测试。

      Ruby社区采取非常严肃的测试。对Ruby测试框架包括测试::单位,RSpec的,MINITEST和黄瓜。 <代码>测试::单位是为红宝石测试框架原来的标准单元中,但它有利于<代码> MINITEST 被弃用。

      通常,测试走在项目的根目录的/测试或/规范文件夹。通常情况下,有正在处理的测试案例或规范之前运行/test/test_helper.rb或/spec/spec_helper.rb。这是一个好地方来配置全球测试环境。

      让我们看一下使用<代码> MINITEST 测试的一个例子。 <代码> MINITEST 是能够既单元测试和规格味测试,以及基准。

      注:虽然红宝石附带<代码> MINITEST 的,我使用的 MINITEST ::测试的了,而不是<代码> MINITEST ::单位:: TestCase的的错误。这是固定通过安装最新版本的宝石。

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $宝石安装MINITEST --version 5.4.2

      我们将使用单元测试格式的简单的测试文件开始。

      <预的tabindex =“0”类=“语言红宝石‘> <代码类=’语言红宝石”>需要‘MINITEST /自动运行’

      Foo类

      高清你好

      “再见”

      结束

      结束

      类命名为testFoo

      DEF设置

      @foo = Foo.new

      结束

      高清test_hello

      assert_equal “你好”,@ foo.hello

      结束

      如果你运行该文件,你应该得到一个失败。

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”> 1)失败:

      命名为testFoo#test_hello [test.rb:15]:

      预计:“你好”

      实际:“再见”

      1个测试,1个断言,1次失败,0错误,0跳过 <代码> MINITEST 是凉的,但RSpec的可以说是在Ruby宇宙中最流行的测试框架。这很大程度上要归功于一个蓬勃发展的社区和各种集成与其他测试的库,例如水豚。不同于<代码> MINITEST ,RSpec的包括测试转轮命令,<代码> rspec的,这将检查所有功能在规格/ 命名的目录层级<代码> * _规范.RB

      首先,安装在 rspec的宝石。

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $宝石安装rspec的--version 3.1.0

      典型地,该<代码>规格/ 目录具有这样的布局:

      <预的tabindex =“0”类=“语言红宝石‘> <代码类=’语言红宝石”> - 规格

      - spec_helper.rb

      - gem_or_app_name

      - 楷模

      - some_model_spec.rb

      - 控制器

      - some_controller_spec.rb

      用于演示,只是创建一个例子规范和空白<代码> spec_helper.rb

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”>#投机/ example_spec.rb

      要求“spec_helper”

      Foo类

      高清你好

      “再见”

      结束

      结束

      描述Foo执行

      前(:每个)做

      @foo = Foo.new

      结束

      它说:“你好”吗

      期待(@ foo.hello)。为了EQ “你好”

      结束

      为了检查该规范,只需运行<代码> rspec的在根项目目录。

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”> $ rspec的

      失败:

      1)富打招呼

      故障/错误:期待(@ foo.hello)。为了EQ “你好”

      预计:“你好”

      有:“再见”

      (比较使用==)

      #./spec/example_spec.rb:13:in`在<顶部(必需)>块(2级)”

      在0.00079秒成品(文件了0.06974秒负载)

      1例如,1次失败

      什么规格/ spec_helper.rb?要了解它的使用,我们将添加代码覆盖。 SimpleCov是一种流行的代码覆盖工具,将产生在覆盖HTML覆盖/ 目录在项目根。

      首先,安装在 simplecov 宝石。

      <预的tabindex = “0” 类= “语言的bash ”> <代码类=“ 语言的bash”> $宝石安装simplecov --version 0.9.1

      现在,只需拨打<代码> SimpleCov.start 在投机/ spec_helper.rb。

      <预的tabindex = “0” 类= “语言红宝石 ”> <代码类=“ 语言红宝石”>#投机/ spec_helper.rb

      要求“simplecov”

      SimpleCov.start

      覆盖范围将每次计算<代码> rspec的运行。在这种情况下,没有什么可以盖,但该工具将被激活。

      请记住,<代码> rspec的不执行<代码>规格/ spec_helper.rb 自动。它需要通过添加<代码>各规格之内所需的需要“spec_helper” 到spec文件的顶部。

      概要

      版本管理:

      - 使用系统安装的Ruby是充满了危险 - 使用版本管理器。

      - 使用不同的宝石对每个重大项目。隔离可以帮助避免冲突和问题,这是不正确或不准确指定的依赖。

      手工艺宝石:

      - 当开发宝石,库目录必须手动添加到<代码> $ LOAD_PATH 对于码工作仿佛安装宝石。这可以在命令行或编程来完成。

      - <代码> File.expand_path(“../../ LIB”,__FILE __)指的是lib文件夹一个目录起来,而不是两个目录起来,因为它看起来。

      - 只有一个文件,<代码> gem_name.rb ,应在<代码> LIB 目录。源代码的其余部分应该去<代码> LIB / gem_name /

      - 如果使用红宝石1.8.7,<代码>需要“的rubygems” 应不需要任何宝石之前去。

      - 珠宝依赖性可以走了捆扎机的Gemfile或RubyGems的gemspec。

      - 在gemspecs,<代码> #executable_files = 期望的文件名,而不是路径。假设名为<代码>仓的文件夹。

      - Rakefiles就像Makefile文件,并确定测试一样,建筑,和释放常见任务。

      - 这是流行使用的 git的LS-文件获得了gemspec文件的数组,但Ruby有<代码>目录这是更加便于携带。

      - <代码>束EXEC [命令] 执行使用在Gemfile中指定的宝石的版本中的一个命令。这不应该是必要的RVM或Ruby> = 2.2.0。

      Ruby实现:

      - 红宝石的参考实现(CRuby / MRI)具有全局解释锁,因此而并发是可能的线程,并行(一次多个处理器)不是。

      - 如果需要在MRI并行性,使用具有分叉<代码>内核#叉

      - 在并行运行的线程可以使用JRuby,Rubinius的,和RubyMotion实现。

      文档

      - 在 RI 工具可用于核心文档离线探索。

      - <代码>的RDoc 是Ruby的标准嵌入的文档生成器。

      - 为您的Ruby实现文档可能需要通过您的版本管理器进行安装像<代码> RVM文档生成

      - <代码>撬是一个复杂的控制台可以在runtime.Testing探索文档和程序

      - 测试或规格走了项目的测试/或规格/文件夹。

      - 设置和配置在去测试/ test_helper.rb中或规格/ spec_helper.rb

      - <代码> MINITEST 的是标准的测试库,但你可能会遇到的遗留代码使用<代码>测试::单位

      - 所有RSpec的规格可以通过含有<代码>规格/ 运行<代码> rspec的在项目的根目录进行检查。

      - 所有规格必须以* _spec.rb结束,或者如果不能直接运行的,他们将被跳过。

      - RSpec的不自动执行规范/ spec_helper.rb。 <代码>需要“spec_helper” 需要在每个spec文件中去。

      - SimpleCov是一个测试覆盖率库,可以通过安装宝石并将其添加到测试套件的辅助文件中使用。


      以上信息来源于网络,如有侵权,请联系站长删除。

      TAG:红宝石 生态系统 Ruby开发者

    1. 上一篇:如何使用九倍建立持续部署
    2. 与“Ruby的生态新Ruby开发者”相关的资讯
    3. 构建的API使用Ruby on Rails和GraphQL
    4. 词法分析器,解析器和AST的,OH MY!:如何执行红宝石
    5. 红宝石,Rails和骗子综合症;与格伦·古德里奇
    6. 5红宝石资源守则小时
    7. 五趋势开源项目使用Ruby