11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rspec3.0.0にアップデートしたらDeprecatedが多発していたのはDraperが影響していた件

Last updated at Posted at 2014-06-06

Rspec3.0.0が正式リリースしましたね!!
自分の環境では3.0.0はbeta版から使っていたのですが、3.0.0rc1 にアップデートしたところから、以下の様なdeprecatedワーニングが多発していました。。

The `:example_group` key in an example group's metadata hash is deprecated. 

面倒くさいから放っておいていたんですが、正式リリースしたところで真剣に調べてみました。

まずはリリースノートを調べてみた

リリースノートを見ると、example_group について、書かれていました。影響があるんだろうなというところで詳細はわからずじまい。。
RSpec 2.99.0 and 3.0.0 have been released!

そして、rspec-railsのリポジトリを調べていると

Issueの中にそれっぽいのがありました。

https://github.com/rspec/rspec-rails/issues/1035#issuecomment-43831752
It would appear that Draper::DecoratorExampleGroup is the cause:

Draperか????!

DraperのIssueを見てみた

はい、ありました。。このIssueで取り上げられていました。
https://github.com/drapergem/draper/issues/620

そしたら、既にFixしていました。(一昨日Fixしてた。2014/06/03)
https://github.com/drapergem/draper/pull/623

Draperの最新 v1.3.1 がリリースされているみたいなので以下の通り、Gemfileを修正しリリース版の最新にするように bundle update を実行します。
Version 1.3.1 以上にすることで解決します

gem "draper"

これで、 解決した!!
deprecationが出まくっていると気持ち悪いですからね。良かった!

おまけ!

と言うより yujinakayama/transpec が素晴らしかったという話。

Rspec3.0への移行は手動でやっていたのですが、今回のDeprecationが発生した時に、まず疑ったのが、移行の方法が間違っているのかというところでした。
そこで、試しに Rspec3.0 へのマイグレーションツールのyujinakayama/transpecを使って移行を自動で試して見ようという感じでやっていたら、これがすごかった!!!
コマンド実行して5分くらいしたら自動で全部マイグレーションして、Rspec3.0の記法に合わせて修正してくれた。こういうツールがあるっていうのはとてもやりやすいなと思いました。まだ2.0系を利用している人は試して見る価値ありです。

さらにrspec-coreのリポジトリに、、、

以下のIssueが挙がっていました。
Draper 以外に Pundit でも同様の問題があったみたいです。
https://github.com/rspec/rspec-core/issues/1562

以上、参考になれば。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?