Alg*_*gar 14 android robolectric
虽然这个问题已经在其他主题的早期版本中得到了解答,但现在没有一个答案对api 28来说对我有用了.
在api 27上,所有Robolectric测试都运行良好.现在,当我的app api目标为28时,它们都会失败.
我有
@Config(constants = BuildConfig::class, sdk = [Build.VERSION_CODES.P])
在我的测试课上.
潜入Robolectrics内部的SdkConfig.java,看起来他们添加了对api 28的支持:
addSdk(Build.VERSION_CODES.P, "P", "4651975", "P");
但是,当在调试器中评估该行代码时,Build.VERSION_CODES.P
求值为10000
.不知道那里发生了什么.
我正在运行Robolectric 3.8,并尝试使用4.0 alpha版本而没有运气.
我错过了什么?
编辑:现在我只是运行最新的(我能说的)支持的api版本,通过注释测试类@Config(sdk = [Build.VERSION_CODES.O_MR1])
.这将为您提供Android 8.1.0(api 27).
Phi*_*hil 13
要完成Algar的答案,您可以通过注释您的测试类来暂时绕过此错误(同时Robolectric解决此问题):
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.O_MR1])
class YourUnitTests {
...
}
Run Code Online (Sandbox Code Playgroud)
它将迫使Robolectric使用Android API 27.
Alg*_*gar 11
第二次编辑:这已从快照毕业,现在可用
testImplementation 'org.robolectric:robolectric:4.0-beta-1'
Run Code Online (Sandbox Code Playgroud)
即你不再需要maven快照线.
编辑:现在已修复并在快照构建中可用.在您的gradle构建文件(app level)中添加
repositories {
maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
}
Run Code Online (Sandbox Code Playgroud)
和
dependencies {
testImplementation 'org.robolectric:robolectric:4.0-alpha-3-SNAPSHOT'
}
Run Code Online (Sandbox Code Playgroud)
现在这个问题已经使用来自贡献者的信息进行更新,似乎会有一个新的4.0 alpha版本可以在本周内解决问题.
归档时间: |
|
查看次数: |
2654 次 |
最近记录: |