这让我惊喜
看来你不能在项目中任何地方的2个rspec共享示例组使用相同的名称.如果这样做,那么当您运行rake spec(运行所有规范)时,rspec就会抱怨一个共享的示例组被声明为非唯一的名称.
即使对shared_examples_for的调用包含在描述块中(也就是假设应该对范例进行示例),这种情况也会发生.
起初我试图通过改变示例组的名称来解决这个问题(不太理想,但是我可以用它来生活).
但是,当我想将示例组分解为一个单独的文件时,这变得更加成问题,所以我可以在多个spec文件之间共享它.
在独立运行时,规格工作正常,但是当我运行套件时,rspec抱怨.
`ensure_shared_example_group_name_not_taken': \ Shared example group 'a person' already exists (ArgumentError)
当然这是一个常见的问题.
有没有我在这里失踪的东西?
解决方法
从rspec 2.6开始,共享示例是全局的.您可以在示例组中声明它们,但不对该组进行范围限定.