关于这个问题的大多数问题是由于缺少Xcode; 我安装了Xcode 4.2.
安装尝试:
rvm install 1.9.3
Installing Ruby from source to: /Users/jamie/.rvm/rubies/ruby-1.9.3-p0, this may take a while depending on your cpu(s)...
ruby-1.9.3-p0 - #fetching
ruby-1.9.3-p0 - #extracted to /Users/jamie/.rvm/src/ruby-1.9.3-p0 (already extracted)
Fetching yaml-0.1.4.tar.gz to /Users/jamie/.rvm/archives
Extracting yaml-0.1.4.tar.gz to /Users/jamie/.rvm/src
Configuring yaml in /Users/jamie/.rvm/src/yaml-0.1.4.
Compiling yaml in /Users/jamie/.rvm/src/yaml-0.1.4.
Installing yaml to /Users/jamie/.rvm/usr
ruby-1.9.3-p0 - #configuring
ERROR: Error running ' ./configure --prefix=/Users/jamie/.rvm/rubies/ruby-1.9.3-p0 --enable-shared --disable-install-doc --with-libyaml-dir=/Users/jamie/.rvm/usr ', please read /Users/jamie/.rvm/log/ruby-1.9.3-p0/configure.log
ERROR: There has been an error while running configure. Halting the installation. …Run Code Online (Sandbox Code Playgroud) 我正在使用Yeoman和generator-angular来管理AngularJS应用程序,但我在自动化测试方面遇到了麻烦.
运行grunt test将运行一次单元测试.通过改变karma配置块Gruntfile.js,我可以在单元测试后运行E2E测试,添加e2e:
karma: {
//...
e2e: {
configFile: 'karma-e2e.conf.js',
singleRun: true
}
},
Run Code Online (Sandbox Code Playgroud)
太棒了:现在当我键入grunt test所有测试时都会运行.但它们只运行一次,并且有很大的开销(启动指南针,运行服务器,启动Chrome进程等).相反,服务器和Chrome进程应该保持运行,当我保存测试时,应该重新运行测试.
我可以通过修改都达到这个karma.conf.js和karma-e2e.conf.js和设置singleRun = true,然后在运行karma start在一个终端窗格,karma start karma-e2e.conf.js在另一个.如果业力配置中的任何端口都没有发生冲突(默认情况下它们会这样做),这是有效的.现在我绕过了Grunt而只是做了我自己的事情(这似乎有点傻,因为Grunt应该让事情变得更容易).
无论如何,经过一些更改(修复?) - 为了简洁而没有详细说明 - 这有效但不会削减它:我现在必须运行两个不同的命令并密切关注两个不同的终端窗格.当然有更好的方法.
如何运行单个命令来观察我的测试文件并重新运行测试?
奖金问题:为什么地球上没有提供此功能?这只是发电机角度开发人员没有足够时间来实现这个问题的问题吗?我问,因为我只是刚刚进入Angular/Yeoman/Karma(你可能已经注意到了),并且觉得E2E和单元测试的自动化测试对于工作流程至关重要.
我一直有自制问题,所以我想我会跑brew doctor,但它只是停留在mdfind上.brew --config输出以下内容后,还会挂起mdfind:
HOMEBREW_VERSION: 0.9.4
ORIGIN: https://github.com/mxcl/homebrew
HEAD: c2cc58163b54a9ea2ee56febfc722396079c5b9a
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CELLAR: /usr/local/Cellar
CPU: quad-core 64-bit sandybridge
OS X: 10.8.3-x86_64
Xcode: 4.6.2
CLT: 4.6.0.0.1.1365549073
LLVM-GCC: build 2336
Clang: 4.2 build 425
Run Code Online (Sandbox Code Playgroud)
brew update 似乎工作:
$ brew update
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)
我甚至可以安装东西:
$ brew install rsnapshot
==> Downloading http://rsnapshot.org/downloads/rsnapshot-1.3.1.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/rsnapshot/1.3.1 --mandir=/usr/local/C
==> make install
/usr/local/Cellar/rsnapshot/1.3.1: 12 files, 356K, built in 4 seconds
Run Code Online (Sandbox Code Playgroud)
他们甚至工作:
$ rsnapshot
rsnapshot 1.3.1
Usage: rsnapshot [-vtxqVD] [-c cfgfile] [command] …Run Code Online (Sandbox Code Playgroud) 我刚刚进入C++,我认为我有一个指针,但std::accumulate()让我感到困惑.
鉴于阵列:
int a[3] = { 5, 6, 7 };
Run Code Online (Sandbox Code Playgroud)
我想将数组的值加起来std::accumulate(),所以我将它传递给第一个元素,然后是最后一个,然后是累加器的起始值.
std::accumulate(a, a + 2, 0);
std::accumulate(&a[0], &a[2], 0);
Run Code Online (Sandbox Code Playgroud)
糟糕:其中任何一个都只返回前两个元素的总和:11.
另一方面,如果第二个参数是一个荒谬的指针,只是超出范围......
std::accumulate(a, a + 3, 0);
std::accumulate(&a[0], &a[3], 0);
Run Code Online (Sandbox Code Playgroud)
... 18返回正确的值.
有人可以解释一下吗?我意识到我可以避免使用简单的数组,但这不是重点.
我正在创建一个对象,subject并且需要测试是否会引发异常.以下代码说明了我正在尝试实现的目标:
describe MyClass do
describe '#initialize' do
subject { MyClass.new }
it { is_expected.not_to raise_error(Some::Error) }
end
end
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,我会以错误的方式来做这件事.在subject不创建对象两次的情况下,将对象设置为新对象的首选方法是什么?
更新
我的问题是双重的.首先,这种语法不起作用:
it { is_expected.not_to raise_error }
Run Code Online (Sandbox Code Playgroud)
然而,expect在一个it区块内部使用(正如Jimmy Cuadra所指出的那样):
it 'does not raise an error' do
expect { subject }.not_to raise_error
end
Run Code Online (Sandbox Code Playgroud)
我不熟悉RSpec告诉你为什么会这样.
其次,自RSpec 3.0.0.beta1以来,可以使用raise_error特定的错误类.因此,以下内容无效:
expect { subject }.to raise_error(Some::Error)
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅
我一般使用tmux打开3-4个窗格.其中一个窗格很少使用,所以我很乐意将它隐藏在某个地方.我想我可以在一个新窗口中执行此操作,但我宁愿将其隐藏在现有窗格的"后面".
例如,我想继续rails server在后台运行,因为我很少需要引用它,因此guard占用该窗格.当我需要查看rails server输出时,我将切换到guard窗格,然后"选项卡" 切换到rails server.
至少,这是理想的情况,但我无法弄清楚如何实现它.
我在银行有两个帐户,并希望将交易导入GnuCash.我的银行只给了我CSV文件,但它至少可以将两个帐户的交易都放到一个CSV文件中.
这些CSV文件是GnuCash无法解析的,因此我决定将它们转换为QIF文件,因为我还可以为每笔交易添加帐户信息 - 或者我听说过.
麻烦的是,QIF定义不明确.我正在浏览各种文档片段,但我仍然无法弄清楚如何格式化我的帐户信息.无论我做什么,GnuCash告诉我该文件只有一个帐户的帐户详细信息,并使用文件名称预先填写帐户名称.
!Account
NNameOfAccount
!Type:Bank
D01/01/16
T100.00
MSometext
PSomePayee
^
Run Code Online (Sandbox Code Playgroud)
!Account
NNameOfAccount
...transactions...
!Account
NNameOfOtherAccount
...transactions...
Run Code Online (Sandbox Code Playgroud)
这个实际上让我完成了大部分导入步骤,并正确映射了两个帐户.麻烦的是,我接到一条神秘的错误信息:'在转换QIF数据时检测到了一个错误.'
!Account
NNameOfAccount
^
!Type:Bank
D01/01/16
T100.00
MSometext
PSomePayee
^
!Account
NNameOfOtherAccount
^
!Type:Bank
D01/01/16
T100.00
MSometext
PSomePayee
^
Run Code Online (Sandbox Code Playgroud)
我应该如何格式化QIF文件,以便为每个交易指定帐户名称?
我使用模型添加了嵌套在另一个对象中的对象.像这样:
Ingresso模型 - >
def as_json(options=nil)
super(:include => [:usuario, :tipo_de_ingresso])
end
Run Code Online (Sandbox Code Playgroud)
在tipo_de_ingresso模型中,我想添加另一个嵌套的对象.这里:
def as_json(options=nil)
super(:include => :entradas)
end
Run Code Online (Sandbox Code Playgroud)
但是当我得到它时ingressos.json,我输了entradas.如果我得到tipo_de_ingressos.json,entradas嵌套,好吧,但是当我得到ingressos.json,他们不在那里.
我怎么能entradas在tipo_de_ingresso打电话时嵌入ingresso?