Scalaz7.1系の最新開発版に依存したライブラリのテスト


あくまでも現時点の情報なので、ここに書いてあることの大半は結構すぐに古くなる、もしくは(おそらく7.1.0finalが出ときには)必要なくなる可能性があります。

  • scalaz-specs2とかあるけど、これ書いてる時点では、7.1.xのマイルストーンに対しては対応していない。おそらく7.1.0.finalでたら対応すると思うが https://github.com/typelevel/scalaz-specs2
  • specs2の最近のversionはScalaz7.0.xに直接依存するようになったので、Scalaz7.1.xと同時に使えない
  • なので、選択肢としてはspecs2以外のテストライブラリ使う、もしくはspecs2の作者に頼めば7.1.xのマイルストーンのScalazでビルドしたspecs2出してくれる*1、はず。逆に言わなければ、出してくれないかも?
  • けど別に、specs2それほど使いたいわけでもない。毎回マイルストーン出るたびに、specs2の状況に振り回されるのも微妙
  • scalatest使ってもいいけど、単に個人的に慣れてないので特に使う予定なし
  • つまり、使うとしたらscalacheckのみを単体で、ということに
  • しかし、最近内部的にScalazのテストに使ってるSpecLite.scala https://github.com/scalaz/scalaz/blob/v7.1.0-M4/tests/src/test/scala/scalaz/SpecLite.scala くらいなら、便利だし使いたいかも
  • しかし、scalazのtestのモジュールはpublishされてない
  • あ、ファイル1つだし、sbtの機能使って、直にdownloadすればいいのでは?(コピーしてきてgit管理下に追加でもいいけど、更新された場合の変更が面倒なので、直接コピーしてgit管理下に加えるのはできれば避けたい)

というわけで、sbtの立ちあげ時にコピーしてきて、sourceGeneratorによりテストコードに含めるビルドファイルが以下です(sbt0.13.0以上でないと動かないよ)

*1:たとえばspecs2には2.3.4-scalaz-7.1.0-M3という特別versionが存在していたり https://oss.sonatype.org/content/repositories/releases/org/specs2/specs2_2.10/2.3.4-scalaz-7.1.0-M3/