Я делаю Принципы реактивного программирования курс из Coursera. В одном из заданий мне нужно использовать класс scalacheck. У меня есть следующий тестовый класс открытый в Intellij:Не удается запустить scalacheck
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
console)?
, как я понял, вы показали код из примера. Я думаю, будет лучше показать код. (более ясно для andertend проблема). Место для испытания должно быть: src/test/scala/. Возможно, вы пропустили какую-то конфигурацию. для запуска теста в sbt: sbt> test –