我正在考瑟拉做反应式编程课程的原理。在其中一个作业中,我需要使用一个标尺类。我在Intellij中打开了以下测试类:
package quickcheck
import org.scalatest.FunSuite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import org.scalatest.prop.Checkers
import org.scalacheck.Arbitrary._
import org.scalacheck.Prop
import org.scalacheck.Prop._
import org.scalatest.exceptions.TestFailedException
object QuickCheckBinomialHeap extends QuickCheckHeap with BinomialHeap
@RunWith(classOf[JUnitRunner])
class QuickCheckSuite extends FunSuite with Checkers {
def checkBogus(p: Prop) {
var ok = false
try {
check(p)
} catch {
case e: TestFailedException =>
ok = true
}
assert(ok, "A bogus heap should NOT satisfy all properties. Try to find the bug!")
}
test("Binomial heap satisfies properties.") {
check(new QuickCheckHeap with BinomialHeap)
}
test("Bogus (1) binomial heap does not satisfy properties.") {
checkBogus(new QuickCheckHeap with Bogus1BinomialHeap)
}
test("Bogus (2) binomial heap does not satisfy properties.") {
checkBogus(new QuickCheckHeap with Bogus2BinomialHeap)
}
test("Bogus (3) binomial heap does not satisfy properties.") {
checkBogus(new QuickCheckHeap with Bogus3BinomialHeap)
}
test("Bogus (4) binomial heap does not satisfy properties.") {
checkBogus(new QuickCheckHeap with Bogus4BinomialHeap)
}
test("Bogus (5) binomial heap does not satisfy properties.") {
checkBogus(new QuickCheckHeap with Bogus5BinomialHeap)
}
}当我试图运行它时,我得到了以下输出:
+ Heap.min1: OK, passed 100 tests.
+ Heap.minOfTwo: OK, passed 100 tests.
+ Heap.insertAndDelete: OK, passed 100 tests.Heap.min1,Heap.minOfTwo,Heap.insertAndDelete是我想要检查的方法,所以这很好。但是,它们通过的测试与我试图运行的测试文件没有任何关联。
如何从Intellij正确运行此测试文件?我可以在其他地方运行它(比如sbt控制台)吗?
发布于 2016-03-15 11:19:10
您使用这个库ScalaTest吗?在sbt中,您可以运行代码/测试它,编译和更新库(比在Intellij中更快),并做许多其他有用的事情
发布于 2016-05-15 17:46:02
在IntelliJ中,在编辑器中打开该文件并不能确保在执行测试时运行的是测试类。您的项目可以包含多个运行/调试配置,您可以使用Run > Edit Configurations进行编辑。要只执行quickcheck.QuickCheckSuite中定义的测试,需要将Test Class:设置为quickcheck.QuickCheckSuite的ScalaTest配置。然后您可以使用Run > Run…执行它。
或者,从sbt,您可以运行
test-only quickcheck.QuickCheckSuite
https://stackoverflow.com/questions/36009185
复制相似问题