gpt4 book ai didi

android - 什么是 Android 测试编排器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:01:06 25 4
gpt4 key购买 nike

Google 最近发布了 Android Testing Support Library 1.0。看完overview ,我对 Android Test Orchestrator 有点困惑。

它说

Typically, AndroidJUnitRunner runs all tests in the same instrumentation process, which can cause a number of problems.

您能解释一下使用相同的检测过程会导致哪些问题吗?

if one test crashes, it prevents the remainder of the test suite from running

根据我的经验,一次测试崩溃不会阻止其他测试用例的运行。请指出我在这里误解了什么?

来自Android Testing Orchestrator developer guide ,

For completeness, Android Test Orchestrator runs pm clear after each test.

所以 Android Test Orchestrator 会在每次测试后运行pm clear [test_package_name],对吧?

通过我的测试,pm clear [app_package_name]不会在每次测试后执行。也就是说被测应用的数据不会被清除。所以测试用例可能仍然相互依赖。例如:

  • 测试用例 A 存储一个 SharedPreference 键值
  • 在测试用例A之后运行的测试用例B可以读出测试用例A存储的值

总的来说,经过一些试用,我没有发现 Android Test Orchestrator 有任何优势。有人可以帮助解决我的困惑吗?谢谢。

最佳答案

稍微研究一下这个问题后,我可以提供以下答案:

Typically, AndroidJUnitRunner runs all tests in the same instrumentation process, which can cause a number of problems.

如前所述,AndroidJUnitRunner 在相同的检测进程上运行,因此基本上您的测试是全状态运行,如果您的测试对进程状态有某种依赖性,这可能会造成严重破坏。在 Android 测试编排器中,每个测试都在其自己的进程中运行,因此依赖性不是问题。

if one test crashes, it prevents the remainder of the test suite from running

这里讨论的崩溃是进程的崩溃,而不是 Activity/应用程序的崩溃。您可以通过在一个测试中插入 System.exit(0); 来测试这一点。通常,这将停止整个测试运行,而在 Android 测试编排器中,测试将按预期继续进行。

For completeness, Android Test Orchestrator runs pm clear after each test.

这是谷歌的疏忽,已从 official documentation 中撤回可以观察到here .

基本上,使用 Android 测试编排器的优势在于每个测试都有单独的过程,这提高了稳定性并确保测试的完整执行。

关于android - 什么是 Android 测试编排器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45992726/

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