19 Jan 10:00
ScalaTest 1.7.RC1 released
Hi All, I have released ScalaTest 1.7.RC1 for Scala 2.8.1+ and 2.9.0+. This should be source compatible with ScalaTest 1.5.1 and 1.6.1, so please let me know if something breaks for you. It is not binary compatible, so you'll need to do a clean build, but that should be all that's required to upgrade. Please post on scalatest-users if you encounter a problem. ScalaDoc for the 2.9.0+ variant is here: http://www.artima.com/docs-scalatest-1.7.RC1/ This release includes the following enhancements, bug fixes, dependency changes, and deprecations: Enhancements: - Added trait Inside, which lets you make assertions about values extracted from an object via a pattern match - Added traits OptionValues, EitherValues, and PartialFunctionValues, which allow you to make one-liner assertions about values that *should* exist in Options, Eithers, and PartialFunctions - Added extra methods on MockitoSugar for new mock methods added to Mockito - Added WrapWith annotation to enable ScalaTest to run non-Suites, similar to JUnit's RunWith annotation - Added trait NonImplicitAssertions, which turns off the lone implicit conversion you get by default in a ScalaTest suite - Made Event and Ordinal Serializable, as well as internal implementations of Rerunner, to make it easier to run tests in a different VM across a network - OSGI-enabled scalatest's jar file Bug fixes: - Made OneInstancePerTest report tests tagged as ignored as Ignored rather than running them. To fix this, had to change the semantics of run slightly, but in a way that is unlikely to break any user code. Now if you pass the name of a test marked as ignored to Suite.run, the test will be reported as ignored. Previously it would be run even though it was marked as ignored. So now ignore always means ignore (and that is arguably an improvement because it is more consistent). The upshot is that if you want to run a test marked as ignored, you need to take the ignore annotation off, then run it. - Added a hack to fire a test failed event for a test named "!!! Suite Aborted !!!" in the case of a SuiteAborted event when running with sbt. Will eventually help enhance sbt's Framework to do this the right way, but for now, at least sbt won't think that nothing went wrong. Dependency Changes: - Upgraded EasyMock from 3.0 to 3.1 - Upgraded Added a dependency that TestNG needed on Guice 3.0 - Upgraded JUnit from 4.4 to 4.10 - Upgraded TestNG from 5.7 to 6.3.1. This was the tricky one, because some binary incompatible things happened in TestNG between 5.7 and 6.3.1. We used reflection internally to deal with it dynamically, so you should be able to still use older versions of TestNG without getting ClassNotFoundErrors Deprecations: - Deprecated -t in favor of -b in Runner, for running TestNG test suites (-t will still work during deprecation cycle, but you'll get a deprecation warning.) - Deprecated Rerunner with a note asking if anyone is using it. If we don't hear back that anyone is using it, there's a good chance we'll remove it in 2.0 (Rerunner will still work during deprecation cycle, but you'll get a deprecation warning.) - Deprecated org.scalatest.fixture.FixtureX in favor of org.scalatest.fixture.X. So fixture.FixtureWordSpec became fixture.WordSpec, fixture.FixtureFunSuite became fixture.FunSuite, etc. (The old names will still work during deprecation cycle, but you'll get a deprecation warning until you change the names.) - Deprecated "that" in favor of "which" in WordSpec and fixture.WordSpec ("that" will still work during the deprecation cycle, but you'll get a deprecation warning until you change uses to "which." We plan to reuse "that" for a different purpose in the future.) - Deprecated org.scalatest.Spec in favor of org.scalatest.FunSpec, and org.scalatest.fixture.FixtureSpec in favor of org.scalatest.fixture.FunSpec. (The old names will still work during the deprecation cycle, but you'll get a deprecation warning. We plan to reused "Spec" for a different purpose in the future.) You can grab the 2.9.0+ variant (binary compatible with 2.9.0, 2.9.0-1, and 2.9.1) from scala-tools.org via: group id: org.scalatest artifact id: scalatest_2.9.0 version: 1.7.RC1 Or you can just grab the jar file from: http://www.scala-tools.org/repo-releases/org/scalatest/scalatest_2.9.0/1.7.RC1/scalatest_2.9.0-1.7.RC1.jar Or via sbt: val scalatest = "org.scalatest" % "scalatest_2.9.0" % "1.7.RC1 (I will released the same bits for scalatest_2.9.0-1 and scalatest_2.9.1 once it goes final, so sbt users can use the %% operator.) You can grab the 2.8.1+ variant (binary compatible with 2.8.1 and 2.8.2) from scala-tools.org via: group id: org.scalatest artifact id: scalatest_2.8.1 version: 1.7.RC1 Or you can just grab the jar file from: http://www.scala-tools.org/repo-releases/org/scalatest/scalatest_2.8.1/1.7.RC1/scalatest_2.8.1-1.7.RC1.jar Or via sbt: val scalatest = "org.scalatest" % "scalatest_2.8.1" % "1.7.RC1 (I will release the same bits for scalatest_2.8.2 once it goes final, so sbt users can use the %% operator. I can't do one for 2.8.0 because I lack a needed ScalaCheck build.) Once an RC proves worthy I will release 1.7 final. Note: no previously deprecated things were removed in this release, so you need not clear deprecation warnings to upgrade (but it is a good idea to do that anyway). Thanks. Bill PS: In case you're in or near New York, Dick Wall and I will be giving a public Stairway to Scala course in NYC April 30 to May 4. Details are here: http://www.artima.com/shop/stairway_to_scala ---- Bill Venners Artima, Inc. http://www.artima.com
RSS Feed