gpt4 book ai didi

android - ContextWrapper.startInstrumentation() 不启动仪器测试

转载 作者:行者123 更新时间:2023-11-29 20:43:00 27 4
gpt4 key购买 nike

ABD shell 开始 Instrumentation 测试工作正常:

adb shell am instrument de.manayv.lotto.test/android.support.test.runner.AndroidJUnitRunner

为了在未连接到计算机的设备上执行这些测试,我尝试使用以下代码从应用程序(既不是目标应用程序也不是测试应用程序)执行这些测试:

    String packageName = "de.manayv.lotto.noonlinegambling";

final List<InstrumentationInfo> list = getPackageManager().queryInstrumentation(
packageName, 0);
if (list.isEmpty()) {
Toast.makeText(this, "Cannot find instrumentation for " + packageName,
Toast.LENGTH_SHORT).show();
return;
}

final InstrumentationInfo instrumentationInfo = list.get(0);
final ComponentName componentName = new ComponentName(instrumentationInfo.packageName,
instrumentationInfo.name);

if (!startInstrumentation(componentName, null, null)) {
Toast.makeText(this, "Cannot run instrumentation for " + packageName,
Toast.LENGTH_SHORT).show();
}

调试检索以下正确值:

  instrumentationInfo.packageName = de.manayv.lotto.test
instrumentationInfo.name = android.support.test.runner.AndroidJUnitRunner

尽管 startInstrumentation() 返回 true,但测试不会执行。有什么想法吗?

最佳答案

我发现了问题。它是 startInstrumentation() 中的第二个空参数。我将代码更改为:

...
Bundle arguments = new Bundle();
arguments.putString("class", "de.manayv.lotto.espresso.BalanceComputationTest");

if (!startInstrumentation(componentName, null, arguments)) {
Toast.makeText(this, "Cannot run instrumentation for " + packageName,
Toast.LENGTH_SHORT).show();
}

要执行 (Java) 包中包含的所有测试,请改用:

arguments.putString("package", "de.manayv.lotto.espresso");

关于android - ContextWrapper.startInstrumentation() 不启动仪器测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30756099/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com