Android ContentProvider在测试环境中Junit测试之前启动服务
我对Android ContentProvider在测试环境中Junit测试之前启动服务,android,android-service,android-contentprovider,android-testing,Android,Android Service,Android Contentprovider,Android Testing,我对aidl服务进行了大量的现有测试。测试类扩展了ServiceTestCase。在我最近在同一个包中添加了一个新的ContentProvider之前,它们都工作得很好。现在,当我运行测试时,一个或两个现有的测试会随机失败 失败的原因是我正在从ContentProvider的onCreate()绑定到服务。当测试框架重新启动该过程时,ContentProvider将自动创建,并在测试执行setup之前启动aidl服务。这导致即使在我没有从特定测试启动服务时,服务仍在运行。这会导致导致随机测试失败
aidl服务
进行了大量的现有测试。测试类扩展了ServiceTestCase
。在我最近在同一个包中添加了一个新的ContentProvider
之前,它们都工作得很好。现在,当我运行测试时,一个或两个现有的测试会随机失败
失败的原因是我正在从ContentProvider
的onCreate()
绑定到服务。当测试框架重新启动该过程时,ContentProvider
将自动创建,并在测试执行setup
之前启动aidl服务。这导致即使在我没有从特定测试启动服务时,服务仍在运行。这会导致导致随机测试失败的计时问题
我试过以下几件事:
如果我从新ContentProvider
的onCreate
中注释掉bind
调用,则所有测试仍然成功通过。
(注意:现有测试都不需要此提供程序-我仍然需要添加此提供程序的测试)
我尝试从测试中设置一些布尔值,并在提供程序的onCreate()中检查它,但这不起作用,因为提供程序是在junit测试的setUp()
之前初始化的
如果我在之前没有调用它的测试中添加了startservice()
,那么该服务实际上启动了2次,在单元测试期间我可以看到2个实例在运行