为插桩测试配置 testLogging
Configure testLogging for instrumented tests
我想为我的插桩测试配置 testLogging
。然而,Gradle似乎忽略了我在android.testOptions.unitTests.all.testLogging
中的配置。在那里,我配置了应该记录所有通过和失败的测试,但不应记录跳过的测试。但是,Gradle 不会记录我通过的测试,但会记录我跳过的测试。
plugins {
id 'com.android.application'
}
android {
compileSdk 31
defaultConfig {
applicationId 'com.example.myapplication'
minSdk 26
targetSdk 31
versionCode 1
versionName '1.0'
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
testOptions {
unitTests {
all {
testLogging {
events = ["passed", "failed"]
}
}
}
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
androidTestImplementation 'androidx.test:runner:1.4.0'
}
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.junit.Ignore;
import org.junit.Test;
public class ExampleInstrumentedTest {
@Test
public void passedTest() {
assertEquals(2, 1 + 1);
}
@Test
public void failedTest() {
assertEquals(3, 1 + 1);
}
@Test
@Ignore
public void skippedTest() {
fail("Should be skipped");
}
}
不幸的是,Gradle 没有考虑我的测试日志记录配置。除了我的Gradle配置,还输出跳过的测试,不输出通过的测试。
> Task :app:connectedDebugAndroidTest
Starting 3 tests on test(AVD) - 12
com.example.myapplication.ExampleInstrumentedTest > skippedTest[test(AVD) - 12] SKIPPED
com.example.myapplication.ExampleInstrumentedTest > failedTest[test(AVD) - 12] FAILED
java.lang.AssertionError: expected:<3> but was:<2>
at org.junit.Assert.fail(Assert.java:88)
Tests on test(AVD) - 12 failed: There was 1 failure(s).
我在 GitHub 上托管了我完整的最小示例项目:pmwmedia/android-test-example。
我想为我的插桩测试配置 testLogging
。然而,Gradle似乎忽略了我在android.testOptions.unitTests.all.testLogging
中的配置。在那里,我配置了应该记录所有通过和失败的测试,但不应记录跳过的测试。但是,Gradle 不会记录我通过的测试,但会记录我跳过的测试。
plugins {
id 'com.android.application'
}
android {
compileSdk 31
defaultConfig {
applicationId 'com.example.myapplication'
minSdk 26
targetSdk 31
versionCode 1
versionName '1.0'
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
testOptions {
unitTests {
all {
testLogging {
events = ["passed", "failed"]
}
}
}
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.4.1'
implementation 'com.google.android.material:material:1.5.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
androidTestImplementation 'androidx.test:runner:1.4.0'
}
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.junit.Ignore;
import org.junit.Test;
public class ExampleInstrumentedTest {
@Test
public void passedTest() {
assertEquals(2, 1 + 1);
}
@Test
public void failedTest() {
assertEquals(3, 1 + 1);
}
@Test
@Ignore
public void skippedTest() {
fail("Should be skipped");
}
}
不幸的是,Gradle 没有考虑我的测试日志记录配置。除了我的Gradle配置,还输出跳过的测试,不输出通过的测试。
> Task :app:connectedDebugAndroidTest
Starting 3 tests on test(AVD) - 12
com.example.myapplication.ExampleInstrumentedTest > skippedTest[test(AVD) - 12] SKIPPED
com.example.myapplication.ExampleInstrumentedTest > failedTest[test(AVD) - 12] FAILED
java.lang.AssertionError: expected:<3> but was:<2>
at org.junit.Assert.fail(Assert.java:88)
Tests on test(AVD) - 12 failed: There was 1 failure(s).
我在 GitHub 上托管了我完整的最小示例项目:pmwmedia/android-test-example。