"Empty test suite." in pure kotlin module. (Spock/Android)
Asked Answered
B

1

11

My android app is multi module project:

include (android-app/kotlin-android)':application', (pure kotlin)':presentation', (pure kotlin)':domain', (android-library/kotin-android)':dataproviders'

Modules :application and :dataproviders working fine with Spock, test running and completing without problems. But :presentation and :domain which are pure kotlin modules have problem with spock framework. There are my simple examples:

MostPopularPresenterTest.groovy

class MostPopularPresenterTest extends Specification {

    def "exampleTest"(){
        when:
        int i = 1
        then:
        i == 1
    }
}

This test end with error:

Class not found: "pl.hypeapp.presentation.mostpopular.MostPopularPresenterTest"Empty test suite.

But, test written in Java/Junit4 passing well and did not throw any error:

MostPopularPresenterTest2.java

public class MostPopularPresenterTest2 {

    @Test
    public void test(){
        assertEquals(1, 1);
    }
}

I'm using Android Studio 3.0 Canary 5 You can look at my build.gradle files at github:

build.gradle

dependencies.gradle

application.build.gradle

presentation.build.gradle

Can someone help me with my problem?

EDIT: while ran /.gradlew test test are running.

Baxie answered 11/7, 2017 at 14:35 Comment(9)
Try to run the tests on the whole package rather than only one file. That solved this problem for me once.Soneson
@Soneson Do you mean "Run all tests" (CTRL + SHIFT + F10) or changing test kind in Edit Configurations? Both option throws error about empty test, but if I delete spock test all tests(java classes) they running well.Baxie
Looking at your config one difference is that the working projects us groovy-/kotlin-android plugins while the failing projects use the plain plugin variants. Maybe the android plugins do something that is missing in the plain ones? Furthermore, does your edit comment mean, that the spock tests work when run with gradle but not when run within intellij?Playboy
@LeonardBrünings I think plugins are fine. Exactly, spock test works from command line using gradlew test. Only with InteliJ Android Studio is something wrong.Baxie
exact same problem here... Looks like something's wrong with ASLustrous
same here... multiple modules and the pure kotlin modules can't run tests ...Clouet
Has anyone found a solution to this or reported a bug?Hopeless
I have a weird situation, with two test classes, one in Java and one in Kotlin (but of course, I'd rather write my tests with the latter). Running ./gradlew test generates a report only containing the Java class test result, not the Kotlin one. Similarly, Android Studio runs the Java class well, but not the Kotlin one, with the same Empty test suite error message. Any help would be appreciated on this topic.Littleton
issuetracker.google.com/issues/38454212Afterbrain
B
2

Open context menu on parent package of your test and select item "Run tests in ..."

Byler answered 8/3, 2018 at 14:4 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.