gpt4 book ai didi

android - 为 Robolectric 测试用例设置 resourceDir

转载 作者:太空狗 更新时间:2023-10-29 15:01:20 26 4
gpt4 key购买 nike

我想为我的 Robolectric 测试用例之一使用不同的资源目录。在这种情况下,我想使用 release-variant 资源。问题是我无法让它工作,而且我没有在网上看到任何使用此配置的示例。它仍然使用调试资源(我正在运行 gradle testDebug,其中“Debug”是我在 Gradle 中的构建类型之一)。我设置的目录相对于 list 所在的目录是正确的。我也试过在“build/intermediates/..”中引用 ref 文件。配置好像一点作用都没有。

@RunWith(RobolectricTestRunner.class)
@Config(resourceDir = "../../variant_resources/release/res")

..

@Test
public void testHowThingsAreUsingReleaseResources() {
..
}

我正在使用 Robolectric 2.4-SNAPSHOT有没有人使用这个配置有更好的运气?有没有明显的错误?

最佳答案

合格资源

如果资源文件根据子文件夹而变化,则可以为资源指定限定符。请参阅 Qualified Resources 上的 RoboElectric 页面.

带有qualifiers 参数的@Config 属性可用于指定资源的限定符。

例如如果有资源:

 values/strings.xml
values-en/strings.xml
values-en-port/strings.xml

... 那么属性 @Config(qualifiers="en-port") 将确保 values-en-port/strings.xml 资源是用过。

使用不同的 RobolectricTestRunner 更改资源路径

加载不同资源的另一种方法(如果这仅适用于某些测试)是实现 RobolectricTestRunner 类的不同实现,加载不同的资源路径。这里有一个很好的例子来说明如何做到这一点:

https://stackoverflow.com/a/29223625/3063884

关于android - 为 Robolectric 测试用例设置 resourceDir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26307945/

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