运行Spek测试显示错误"空测试套件"

时间:2016-05-23 13:34:37

标签: android unit-testing android-studio testing kotlin

熟悉Kotlin我想介绍另一个Android-Java项目,作为测试的第一步。我决定直接开始Spek

我将以下依赖项添加到要测试的模块的build.gradle中:

import pyodbc
con = pyodbc.connect('DRIVER={SQL Server};SERVER=gxn.database.windows.net;DATABASE=instantcopy;UID=testdb@gxn;PASSWORD=verysecret')
cur = con.cursor()
con.close()

其中我使用了git repo的SimpleTest类spek-samples:

testCompile 'junit:junit:4.12'
testCompile "org.jetbrains.kotlin:kotlin-stdlib:1.0.2"
testCompile "org.jetbrains.kotlin:kotlin-test-junit:1.0.2"
testCompile "org.jetbrains.spek:spek:1.0.25"

代码编译,在Android Studio中,我在类声明旁边显示了一个绿色播放按钮,用于运行类的测试。但是,这样做会导致

import org.jetbrains.spek.api.Spek
import kotlin.test.assertEquals


class SampleCalculator
{
    fun sum(x: Int, y: Int) = x + y
    fun subtract(x: Int, y: Int) = x - y
}

class SimpleTest : Spek({
    describe("a calculator") {
        val calculator = SampleCalculator()

        it("should return the result of adding the first number to the second number") {
            val sum = calculator.sum(2, 4)
            assertEquals(6, sum)
        }

        it("should return the result of subtracting the second number from the first number") {
            val subtract = calculator.subtract(4, 2)
            assertEquals(2, subtract)
        }
    }
})

我创建了JUnit3和JUnit4测试,所有测试都没有任何问题。

我是否错过了Spek测试的任何其他配置步骤?

1 个答案:

答案 0 :(得分:2)

我的失败是我没有完全/正确配置Kotlin。

我错过了使用Kotlin插件,这是用以下几行完成的:

apply plugin: 'kotlin-android'

buildscript {
    ext.kotlin_version = '1.0.2'
    repositories {
        jcenter()
    }

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }

如果你想在普通的JUnit测试中使用Kotlin代码,这也是一个要求。