Ruby 凌驾;rspec";运行测试的命令
这似乎很简单,但我无法通过谷歌或搜索找到一个信誉良好的解决方案 我正在使用foreman和Rails 4应用程序通过.ENV文件加载ENV。为了正确运行测试,我必须执行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 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