-
Notifications
You must be signed in to change notification settings - Fork 37
Open
Description
When I use only one property with TestParameter
annotation tests works well.
As soon as I add a 2nd property with TestParameter
annotation then all tests fail.
After some investigation I've found that androidx.test.runner.AndroidJUnitRunner.runnerArgs.tests
contains incorrect list of test classes:
my.test.MyTestClass#testCheckSmth[boolParam1=false
boolParam2=false]
And as soon as TestLoader.doCreateRunner()
tries to create test class instance from string boolParam2=false]
using reflection it fails later.
It is possible that input parameters incorrectly parsed from test args bundle splitting my.test.MyTestClass#testCheckSmth[boolParam1=false,boolParam2=false]
by coma.
Test class sample:
// This is instrumentation test, should run on device or emulator
@RunWith(TestParameterInjector::class)
class MyTestClass {
@TestParameter
var boolParam1 = false
@TestParameter
var boolParam2 = false
@Test
fun testCheckSmth() {
// test body...
}
}
When I use the same sample with standard JUnit tests it works well.
Test output:
Starting 4 tests on Android_TV_720p_API_Q(AVD) - Q
boolParam2=false] > [Android_TV_720p_API_Q(AVD) - Q] FAILED
java.lang.ClassNotFoundException: Invalid name: boolParam2=false]
at java.lang.Class.classForName(Native Method)
boolParam2=true] > [Android_TV_720p_API_Q(AVD) - Q] FAILED
java.lang.ClassNotFoundException: Invalid name: boolParam2=true]
at java.lang.Class.classForName(Native Method)
boolParam2=false] > [Android_TV_720p_API_Q(AVD) - Q] FAILED
java.lang.ClassNotFoundException: Invalid name: boolParam2=false]
at java.lang.Class.classForName(Native Method)
boolParam2=true] > [Android_TV_720p_API_Q(AVD) - Q] FAILED
java.lang.ClassNotFoundException: Invalid name: boolParam2=true]
at java.lang.Class.classForName(Native Method)
> Task :app:connectedDebugAndroidTest FAILED
juliocbcotta
Metadata
Metadata
Assignees
Labels
No labels