Hello everyone, This is my first email to this maillist so please forgive my lack of familiarity with local protocols.
Now to the situation... I'm using buildr for the first time ever and using it for a scala project, in my project I've got some specs and suites written over scalatest framework setted on buildfile.rb with "test.using :scalatest" I'm using scala 2.9.0 setted on build.yaml with "scala.version". In this setting "buildr clean test" fails with: Downloading org.scala-tools.testing:scalacheck_2.9.0:jar:1.7 Buildr aborted! RuntimeError : Failed to download org.scala-tools.testing:scalacheck_2.9.0:jar:1.7, tried the following repositories: http://scala-tools.org/repo-releases/ http://scala-tools.org/repo-snapshots/ http://www.ibiblio.org/maven2// I figured out it was because the default version of scalacheck wich gets used is 1.7 and for that varsion there is no scala 2.9 jar deployed... so I went and setted "scala.check = 1.9" on build.yaml, then it ended at: E, [2011-05-26T19:55:32.859152 #10775] ERROR -- : Error instantiating 'scalatest' task: scala.collection.immutable.Set$EmptySet$ cannot be cast to scala.collection.generic.Addable Test framework error: scala.collection.immutable.Set$EmptySet$ cannot be cast to scala.collection.generic.Addable The following tests failed: org.retistruen.AsynchronousSuite org.retistruen.BufferedMaxSpec org.retistruen.VariableSpec After investigation I determined this was because default scalatest jar used is 1.3 which again is not scala 2.9 compatible... so I added "scala.test = 1.4.1" at build.yaml, then I got: Downloading org.scalatest:scalatest:jar:1.4.1 Buildr aborted! RuntimeError : Failed to download org.scalatest:scalatest:jar:1.4.1, tried the following repositories: http://scala-tools.org/repo-releases/ http://scala-tools.org/repo-snapshots/ http://www.ibiblio.org/maven2// So I've found there's not scalatest 1.4.1 jar deployed on scala-tools repo without the _2.9.0 artifactId suffix... then I tried to find out how to customize the scalatest artifactId buildr uses but I've found no way other than subclassing Scala::Test::ScalaTestFramework using this code: module Buildr::Scala class CustomScalaTest < Buildr::Scala::ScalaTest VERSION = "1.4.1" class << self def dependencies ["org.scalatest:scalatest_#{Scala.version}:jar:#{version}"] + Check.dependencies + JMock.dependencies + JUnit.dependencies end end end end Buildr::TestFramework << Buildr::Scala::CustomScalaTest test.using :customscalatest Then everything worked out... testing and everything else. Is there an easiest way to override default scalatest artifactId that gets used? If there isn't... should not this change be on the default Buildr::Scala::CustomScalaTest? Better yet... should not all the groupId, artifactId and version of scalatest be parameterized so all can be customized from build.yaml? I will be happy to provide a patch if there is interest. Respect, Pablo
