Modularized Normalize.scssのテスト

Normalize.cssがv3.0.2に更新されていたので、Modularized Normalize.scssも更新した。変更点はmenu要素の追加とIE10でのa要素の背景削除がbackground-colorプロパティーのみに変わったことで、大きな変化はない。で、追随したv3.0.2をリリース後、テストを少し書き換えた。

Modularized Normalize.scssのテストは以下のような単純なものになっている。

  1. 最新版のNormalize.cssのリリース・ファイルをダウンロード
  2. Sassを使ってリポジトリーからビルド
  3. 両者を圧縮
  4. 文字列として比較

これでオリジナルのリリース・ファイルとSassでビルドしたものがCSSとして一致するかを確認している。完全なものではないけど、きちんと動作するものをビルド可能かどうかは確認できる。

しかし、今までは圧縮する時にいわゆるバナー・コメント(ライセンスなどが書かれている消すべきではないコメント)を残していた。そのためバージョン番号をインクリメントしてからじゃないと、バージョン番号が一致せずテストが通らなかった。リリースを自動化しているのにも拘らず、手作業でバージョン番号を上げてからテストし、また戻すとかいう頭の悪い作業が必要だった。

よくよく考えたらテストの時だけコメントを全削除すれば良いだけなので、内部で使っているgrunt-contrib-cssminoptionskeepSpecialComments: 0にして解決した。

cssmin: {
  test: {
    options: {
      keepSpecialComments: 0,
    },

    expand: true,
    filter: 'isFile',
    src: ['tmp/*.css']
  }
}

これでいつでもちゃんとテストできるようになった。