如何与其他模块共享模块的androidTest“Robots”?

nx7onnlm  于 2023-06-04  发布在  Android
关注(0)|答案(2)|浏览(255)

我是Robot模式的忠实粉丝,它可以保持UI测试的整洁。但是,如何在多个模块中重用Robot类呢?

:lib-with-ui . // has Robot classes in `src/androidTest`
:app

我用Robot类完全测试了我的lib-with-ui,但是我想在:app模块中重用这些相同的Robot类进行一些快速冒烟测试。
冒烟测试之所以有用,是因为我们希望测试所有组件的集成,并捕捉可能发生的任何可能的proguarding问题(我们有一个特殊的示例应用程序,它利用了我们库的proguarded阿尔斯)。
我们已经尝试了各种方法来实现这一点,但都导致了奇怪的资源问题。

2hh7jdfx

2hh7jdfx1#

虽然有点晚了,但它可能会帮助未来的读者。
我们很快就可以充分利用Android中的testFixtures功能,这也正是允许的。- https://issuetracker.google.com/issues/139438142
在此之前/否则:

  • 机器人可以放在一个单独的库中,比如robots
  • 这取决于您的:lib-with-ui-(implementation(:lib-with-ui)
  • :lib-with-ui测试可以依赖于新的:robots库。(通过在:lib-with-ui中使用androidTestImplementation(:robots))并且避免循环依赖性。
wdebmtf2

wdebmtf22#

Robot类在模块'lib-with-ui'中定义,你想在模块'app'中使用它?
添加lib-with-ui android库模块作为app模块的依赖项。现在,您的应用模块可以访问Android库中的任何代码和资源,并且库AAR文件会在构建时绑定到您的APK中。
https://developer.android.com/studio/projects/android-library.html#AddDependency

相关问题