Android Jmeter 化测试未找到测试

yhuiod9q  于 2023-05-15  发布在  Android
关注(0)|答案(6)|浏览(275)

我是Android仪器化单元测试的新手。我有一个简单的测试,看起来像这样。这是在 Jmeter 测试中;在我真正编写一个实际的仪器化测试之前,我只想测试一个简单的:

@RunWith(AndroidJUnit4.class)
@SmallTest
public class AddressBookKeepingInstrumentedTest {

    public static final String TEST_STRING = "This is a string";
    public static final long TEST_LONG = 12345678L;

    @Test
    public void test_simple() {
        assertEquals(2,1+1);
    }
}

当我运行它时,我得到以下错误:

junit.framework.AssertionFailedError: No tests found in com.example.myfirstapp.AddressBookKeepingInstrumentedTest
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1729)

Tests ran to completion.

在此之前,Gradle构建已成功通过。知道为什么会这样吗

7gcisfzg

7gcisfzg1#

请将以下内容添加到您的build.gradle中,并将您的测试类放入androidTest文件夹中:

android {
    defaultConfig {
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

对于AndroidX项目,您应该用途:

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
krcsximq

krcsximq2#

我最近尝试了接受的答案,但它给了我一个进程崩溃错误时,试图运行。如果你得到这个,你应该用途:

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

来源:Instrumentation run failed due to 'Process crashed.'

h9vpoimq

h9vpoimq3#

这种情况的典型原因可以看作是Logcat中的异常。
我遇到了一个关于在< API 21上运行的插装式multidex的具体问题,我必须在androidx.test.runner.AndroidJUnitRunner的子类上安装MultiDex,并覆盖:

  • AndroidJUnitRunner::createTestRequestBuilder
  • TestRequestBuilder::createClassPathScanner
  • ClassPathScanner::getClassPathEntries,实现为:
  • 从APK解压缩并解压缩dex文件
  • 运行dexlib2获取类型名称。
  • 将类型名称转换为可读格式:Ljava/lang/String; -> java.lang.string

这是因为ClassPathScanner使用dalvik.system.DexFile,而dalvik.system.DexFile在API 16上只读取APK,然后只读取classes.dex

slhcrj9b

slhcrj9b4#

得到此错误消息的另一个原因是当您使用Java实现Android应用程序并使用Kotlin实现测试用例时。如果是这种情况,请确保在gradle文件中包含以下行:

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
koaltpgm

koaltpgm5#

This post帮了我的忙,只需要将测试方法重命名为“test...”,比如testMethod()

6jygbczu

6jygbczu6#

确保在应用的build.gradle文件中添加了正确的依赖项:

testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

任何 Jmeter 测试都需要Expresso,即使您不使用它。

相关问题