2016-03-15 9 views
0

Я делаю Принципы реактивного программирования курс из 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)?

ответ

0

Вы используете эту библиотеку ScalaTest? Из sbt вы можете запустить вам код/​​проверить его, компилировать и библиотеки обновления (более быстрее, чем в Intellij) и многие другие полезные вещи

+0

, как я понял, вы показали код из примера. Я думаю, будет лучше показать код. (более ясно для andertend проблема). Место для испытания должно быть: src/test/scala/. Возможно, вы пропустили какую-то конфигурацию. для запуска теста в sbt: sbt> test –

0

В IntelliJ, имея, что файл открыт в редакторе не гарантирует, что он является который будет запускаться при выполнении ваших тестов. Ваш проект может содержать несколько конфигураций запуска/отладки, которые вы можете редактировать с помощью Run > Edit Configurations. Для выполнения только тестов, определенных в quickcheck.QuickCheckSuite, вы хотите, чтобы конфигурация ScalaTest с Test Class: установлена ​​на quickcheck.QuickCheckSuite. Затем вы можете выполнить его с помощью Run > Run….

Или от SBT, вы можете запустить

Смежные вопросы