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个实例在运行