From 0696178d767aae94f32f24593b26359fac2c0d5b Mon Sep 17 00:00:00 2001 From: Olivier Toupin Date: Tue, 15 Oct 2013 17:55:19 -0400 Subject: [PATCH] Using ScalaTest tags to filter SlowTest and run them differently --- .../mry/api/protobuf/TestProtobufTranslator.scala | 5 ++--- .../src/test/scala/com/wajam/mry/package.scala | 7 +++++++ project/Project.scala | 14 ++++++++++++-- 3 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 mry-core/src/test/scala/com/wajam/mry/package.scala diff --git a/mry-core/src/test/scala/com/wajam/mry/api/protobuf/TestProtobufTranslator.scala b/mry-core/src/test/scala/com/wajam/mry/api/protobuf/TestProtobufTranslator.scala index 5b40f6a..3de8769 100644 --- a/mry-core/src/test/scala/com/wajam/mry/api/protobuf/TestProtobufTranslator.scala +++ b/mry-core/src/test/scala/com/wajam/mry/api/protobuf/TestProtobufTranslator.scala @@ -8,6 +8,7 @@ import com.wajam.mry.execution._ import org.scalatest.matchers.ShouldMatchers import com.wajam.mry.api.Transport import com.wajam.mry.execution.Operation._ +import com.wajam.mry.SlowTest @RunWith(classOf[JUnitRunner]) class TestProtobufTranslator extends FunSuite with ShouldMatchers { @@ -190,7 +191,7 @@ class TestProtobufTranslator extends FunSuite with ShouldMatchers { assert(results == results2) } - ignore("transport encode/decode: with (n > 100K), should terminate and yield the proper size") { + test("transport encode/decode: with (n > 100K), should terminate and yield the proper size", SlowTest) { def randomTransaction(opCount: Int) = { val t = new Transaction @@ -226,14 +227,12 @@ class TestProtobufTranslator extends FunSuite with ShouldMatchers { } encodeMs should be <= 10000L // Should actually be around 1500ms - println(encodeMs) bytes.length should be === 11954748 val decodeMs = timed { () => { bytes = t.encodeTransaction(trx) } } - println(decodeMs) decodeMs should be <= 10000L // Should actually be around 2000ms } diff --git a/mry-core/src/test/scala/com/wajam/mry/package.scala b/mry-core/src/test/scala/com/wajam/mry/package.scala new file mode 100644 index 0000000..592d2fe --- /dev/null +++ b/mry-core/src/test/scala/com/wajam/mry/package.scala @@ -0,0 +1,7 @@ +package com.wajam + +import org.scalatest.Tag + +package object mry { + object SlowTest extends Tag("SlowTest") +} diff --git a/project/Project.scala b/project/Project.scala index 0dafa15..7541f63 100644 --- a/project/Project.scala +++ b/project/Project.scala @@ -44,6 +44,7 @@ object MryBuild extends Build { ) lazy val root = Project("mry", file(".")) + .configs(Slow) .configs(IntegrationTest) .settings(defaultSettings: _*) .settings(testOptions in IntegrationTest := Seq(Tests.Filter(s => s.contains("Test")))) @@ -51,17 +52,26 @@ object MryBuild extends Build { .aggregate(core) lazy val core = Project("mry-core", file("mry-core")) + .configs(Slow) .configs(IntegrationTest) .settings(defaultSettings: _*) // See http://code.google.com/p/protobuf/issues/detail?id=368 // We don't publish docs because it doesn't work with java generated by protobuf .settings(publishArtifact in packageDoc := false) - .settings(testOptions in IntegrationTest := Seq(Tests.Filter(s => s.contains("Test")))) - .settings(testOptions in IntegrationTest += Tests.Setup(() => System.setProperty("actors.enableForkJoin", "false"))) + .settings(inConfig(Slow)(Defaults.testTasks) : _*) + .settings( + testOptions in Test := Seq(Tests.Argument("-l","SlowTest")), + testOptions in Slow := Seq(Tests.Argument("-n","SlowTest"))) .settings(testOptions in Test += Tests.Setup(() => System.setProperty("actors.enableForkJoin", "false"))) + .settings(testOptions in Slow += Tests.Setup(() => System.setProperty("actors.enableForkJoin", "false"))) + .settings(testOptions in IntegrationTest += Tests.Setup(() => System.setProperty("actors.enableForkJoin", "false"))) + .settings(testOptions in IntegrationTest := Seq(Tests.Filter(s => s.contains("Test")))) .settings(SbtStartScript.startScriptForClassesSettings: _*) + .settings(parallelExecution in Slow := false) .settings(parallelExecution in IntegrationTest := false) + lazy val Slow = config("slow") extend Test + import sbtprotobuf.{ProtobufPlugin => PB} // We keep it as a separate projet, to avoid a dependency on protoc