diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-02-20 15:02:06 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-02-20 15:02:06 -0600 |
commit | 87e3fc7b9b397545ddd0379ee92d7f58a61cccc5 (patch) | |
tree | c6347cf5706a473fa2b593f7ecd6a838b11b470e | |
parent | cbae98e561e9c619d239a86b9f71b77ee731be4b (diff) | |
download | scala-test-more-87e3fc7b9b397545ddd0379ee92d7f58a61cccc5.tar.gz scala-test-more-87e3fc7b9b397545ddd0379ee92d7f58a61cccc5.zip |
actually, stop fiddling with levels
-rw-r--r-- | src/main/scala/org/perl8/test/TestMore.scala | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/src/main/scala/org/perl8/test/TestMore.scala b/src/main/scala/org/perl8/test/TestMore.scala index 3d07c60..a1addbd 100644 --- a/src/main/scala/org/perl8/test/TestMore.scala +++ b/src/main/scala/org/perl8/test/TestMore.scala @@ -28,18 +28,27 @@ class TestMore ( def ok (cond: Boolean, desc: Message = NoMessage): Boolean = { builder.ok(cond, desc.map(d => "- " + d)) if (!cond) { - val caller = Thread.currentThread.getStackTrace()(2) - val message = " Failed test" + (desc match { - case HasMessage(m) => " '" + m + "'\n " - case NoMessage => " " - }) - val trace = - "at " + caller.getFileName + " line " + caller.getLineNumber + "." - builder.diag(message + trace) + failed(desc) } cond } + private def failed (desc: Message) { + val caller = Thread.currentThread.getStackTrace.drop(1).find(frame => { + frame.getFileName != "TestMore.scala" + }) + val (file, line) = caller match { + case Some(frame) => (frame.getFileName, frame.getLineNumber) + case None => ("<unknown file>", "<unknown line>") + } + val message = " Failed test" + (desc match { + case HasMessage(m) => " '" + m + "'\n " + case NoMessage => " " + }) + val trace = "at " + file + " line " + line + "." + builder.diag(message + trace) + } + private var builder: TestBuilder = _ private var testBody: () => Unit = _ } |