相关疑难解决方法(0)

如何在Android Studio的run/debug配置中将参数传递给Java代码

我的Android应用程序对我的服务器做了一些http请求.但有时我正在调试在我的开发机器上运行的新api代码.我希望能够传递一些东西(比如环境变量),所以在我的代码中,如果它存在,我将能够使用它作为来自android模拟器的api请求的主机名.

所以我正在寻找一种传递类似的方法:

API_SERVER=http://10.0.2.2/myapp/
Run Code Online (Sandbox Code Playgroud)

在我的代码中我会以某种方式使用它,例如:

final static String API_SERVER_REAL = "http://example.com/";
final String apiServerOverride = System.getenv("API_SERVER");
final String API_SERVER = (null != apiServerOverride && !apiServerOverride.isEmpty() ? apiServerOverride : API_SERVER_REAL);
Run Code Online (Sandbox Code Playgroud)

android environment-variables run-configuration android-studio

10
推荐指数
2
解决办法
1万
查看次数

如何组合不同的testInstrumentationRunner

有没有办法让每个测试都有不同的 testInstrumentationRunner ?我必须Task为它创建一个吗?我的跑步者如下:

class MyTestRunner : AndroidJUnitRunner() {
    override fun newApplication(
        cl: ClassLoader?,
        className: String?,
        context: Context?
    ): Application {
        return super.newApplication(cl, MyTestApp::class.java.name, context)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果我想使用真实的应用程序运行一些怎么办?我该如何选择它?

我一直在阅读,在我正在使用它的测试中可以这样做, @RunWith(AndroidJUnit4ClassRunner::class)但我知道如果我这样做,它需要 defaultConfig 之一

defaultConfig {
        testInstrumentationRunner("mypackage.MyTestRunner")
}
Run Code Online (Sandbox Code Playgroud)

但我不能使用它所说的东西Required:KClass<out Runner!>

@RunWith(MyTestRunner::class)
Run Code Online (Sandbox Code Playgroud)

如果我能做到这一点,我就会明白如何使用不同的跑步者。

testing android kotlin android-espresso

5
推荐指数
1
解决办法
1022
查看次数