Ruby 凌驾;rspec";运行测试的命令

Ruby 凌驾;rspec";运行测试的命令,ruby,ruby-on-rails-4,rspec,Ruby,Ruby On Rails 4,Rspec,这似乎很简单,但我无法通过谷歌或搜索找到一个信誉良好的解决方案 我正在使用foreman和Rails 4应用程序通过.ENV文件加载ENV。为了正确运行测试,我必须执行foreman run rspec[可选文件] 这会变得单调乏味,有时我会忘记foreman run部分。我想覆盖单个应用程序的rspec命令,以便: rspec[文件]=>工头启动[文件] 看着垃圾桶,但我不完全理解它们,它们看起来和我想要的不完全一样 我可以创建一个bash脚本来实现这一点,但现在它是特定于我的本地计算机的,而

这似乎很简单,但我无法通过谷歌或搜索找到一个信誉良好的解决方案

我正在使用foreman和Rails 4应用程序通过.ENV文件加载ENV。为了正确运行测试,我必须执行
foreman run rspec[可选文件]

这会变得单调乏味,有时我会忘记
foreman run
部分。我想覆盖单个应用程序的
rspec
命令,以便:

rspec[文件]
=>
工头启动[文件]

看着垃圾桶,但我不完全理解它们,它们看起来和我想要的不完全一样


我可以创建一个bash脚本来实现这一点,但现在它是特定于我的本地计算机的,而不是内置在应用程序代码库中。

我最终在~/scripts文件夹中创建了一个脚本(我在其中存储添加到路径中的我自己的脚本)

以下是我在~/scripts/tester(具有可执行权限)中拥有的内容:

我可以使用rails应用程序目录中的
tester
执行,它将运行执行所有测试的
foreman run rspec
,或者我可以传入特定文件或通配符名称,它将运行匹配的测试

它输出文件位置,因此如果我将此脚本传递给其他人,他们会知道正在运行的文件,以便他们可以修改它…我这样做是因为我实际上遇到了一个新开发人员在谷歌上搜索“测试人员”的情况rails脚本想知道为什么他找不到它作为核心rails的一部分…这样新手就可以确切地知道正在运行什么以及文件的位置

选择
tester
作为脚本名称,因为它不会与AFAIK中的任何其他已知命令冲突

样本输入:

测试仪
=>
领班运行rspec#所有规格


tester spec/models
=>
foreman运行rspec spec/models#运行所有模型spec

如果您不想要一个简单的bash解决方案,为什么要应用bash标记?对于那些准备回答bash问题但对ruby知之甚少的人来说(比如我),这简直是浪费时间。编写一个bash脚本并将其放在
script/spec
或任何你认为合适的名称下。这是一个很好的惯例。否则,只需在bashrc文件中创建一个别名,这样您就可以将
rspec
别名为
foreman run rspec
@rici,实际上我最终使用了bash脚本,因为它是最干净的解决方案。我本希望采用非bash解决方案,但这会带来更多麻烦。我在下面添加了我使用的脚本。如果你对剧本有什么好的建议,我欢迎你的回答。
#!/bin/bash

#==================================================
# Created: 2014-04-01 / Updated: 2014-04-01
# Desc: Shorten syntax to run tests properly.
#==================================================

# For developers who may not use bash at all...
# $0 = filename and path
# $1 = first arg...

cmd="foreman run rspec $1"

echo "#--------------------------------------------------"
echo "# EXECUTING: $0"
echo "# '$cmd'"
echo "#--------------------------------------------------"

$cmd