How to run instrumentation test with AndroidX on application as well as library module?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







1















I have an android project which contains 2 modules.




  1. Android Library Module

  2. Android Demo App Module for Library


I have setup required Test dependency, Gradle configuration same for both the project.



When I run a test from demo app it runs without any issue.
But when the same sample test code run from a library module it can't able to find tests.



Here is the log I can see from the "Run" tab in an android studio.




Demo Module Test - Result




$ adb shell CLASSPATH=$(pm path androidx.test.services) app_process / androidx.test.services.shellexecutor.ShellMain am instrument -r -w -e targetInstrumentation com.cardstream.paymentdemo.test/androidx.test.runner.AndroidJUnitRunner   -e debug false -e class 'com.cardstream.paymentdemo.ExampleInstrumentedTest' androidx.test.orchestrator/androidx.test.orchestrator.AndroidTestOrchestrator
Client not ready yet..
Started running tests
Tests ran to completion.



Library Module Test - Result




$ adb shell CLASSPATH=$(pm path android.support.test.services) app_process / android.support.test.services.shellexecutor.ShellMain am instrument -r -w -e targetInstrumentation com.cardstream.payment.test/androidx.test.runner.AndroidJUnitRunner   -e debug false -e class 'com.cardstream.payment.ExampleInstrumentedTest' android.support.test.orchestrator/android.support.test.orchestrator.AndroidTestOrchestrator
Client not ready yet..
Started running tests
Test running failed: No test results
Empty test suite.


From the above logs, I can see the difference in test services used by both modules.




Demo Module - androidx.test.services



Library Module - android.support.test.services




from the above observations, I have tried to covert those into similar behavior but unfortunately, I can't able to find any exact and valid answer or options.



Configuration for Instrumentation Runner for both module



testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"


Few test dependencies for both module



testImplementation 'junit:junit:4.12'
testImplementation 'org.robolectric:robolectric:4.1'

androidTestImplementation 'androidx.test:core:1.1.0'
androidTestImplementation 'androidx.test:core-ktx:1.1.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
androidTestImplementation 'androidx.test:rules:1.1.1'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestUtil 'androidx.test:orchestrator:1.1.1'


I have created a new project with the library module and run the tests, it works fine for both modules(with support libraries).



I have migrated newly created project with AndroidX and then also works fine for both modules.



Hence, I am getting confused and can't able to figure out the solution for this situation as of now. I am looking forward to your help if anyone has any clues/suggestions/answers?










share|improve this question





























    1















    I have an android project which contains 2 modules.




    1. Android Library Module

    2. Android Demo App Module for Library


    I have setup required Test dependency, Gradle configuration same for both the project.



    When I run a test from demo app it runs without any issue.
    But when the same sample test code run from a library module it can't able to find tests.



    Here is the log I can see from the "Run" tab in an android studio.




    Demo Module Test - Result




    $ adb shell CLASSPATH=$(pm path androidx.test.services) app_process / androidx.test.services.shellexecutor.ShellMain am instrument -r -w -e targetInstrumentation com.cardstream.paymentdemo.test/androidx.test.runner.AndroidJUnitRunner   -e debug false -e class 'com.cardstream.paymentdemo.ExampleInstrumentedTest' androidx.test.orchestrator/androidx.test.orchestrator.AndroidTestOrchestrator
    Client not ready yet..
    Started running tests
    Tests ran to completion.



    Library Module Test - Result




    $ adb shell CLASSPATH=$(pm path android.support.test.services) app_process / android.support.test.services.shellexecutor.ShellMain am instrument -r -w -e targetInstrumentation com.cardstream.payment.test/androidx.test.runner.AndroidJUnitRunner   -e debug false -e class 'com.cardstream.payment.ExampleInstrumentedTest' android.support.test.orchestrator/android.support.test.orchestrator.AndroidTestOrchestrator
    Client not ready yet..
    Started running tests
    Test running failed: No test results
    Empty test suite.


    From the above logs, I can see the difference in test services used by both modules.




    Demo Module - androidx.test.services



    Library Module - android.support.test.services




    from the above observations, I have tried to covert those into similar behavior but unfortunately, I can't able to find any exact and valid answer or options.



    Configuration for Instrumentation Runner for both module



    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"


    Few test dependencies for both module



    testImplementation 'junit:junit:4.12'
    testImplementation 'org.robolectric:robolectric:4.1'

    androidTestImplementation 'androidx.test:core:1.1.0'
    androidTestImplementation 'androidx.test:core-ktx:1.1.0'
    androidTestImplementation 'androidx.test.ext:junit:1.1.0'
    androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
    androidTestImplementation 'androidx.test:rules:1.1.1'
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestUtil 'androidx.test:orchestrator:1.1.1'


    I have created a new project with the library module and run the tests, it works fine for both modules(with support libraries).



    I have migrated newly created project with AndroidX and then also works fine for both modules.



    Hence, I am getting confused and can't able to figure out the solution for this situation as of now. I am looking forward to your help if anyone has any clues/suggestions/answers?










    share|improve this question

























      1












      1








      1








      I have an android project which contains 2 modules.




      1. Android Library Module

      2. Android Demo App Module for Library


      I have setup required Test dependency, Gradle configuration same for both the project.



      When I run a test from demo app it runs without any issue.
      But when the same sample test code run from a library module it can't able to find tests.



      Here is the log I can see from the "Run" tab in an android studio.




      Demo Module Test - Result




      $ adb shell CLASSPATH=$(pm path androidx.test.services) app_process / androidx.test.services.shellexecutor.ShellMain am instrument -r -w -e targetInstrumentation com.cardstream.paymentdemo.test/androidx.test.runner.AndroidJUnitRunner   -e debug false -e class 'com.cardstream.paymentdemo.ExampleInstrumentedTest' androidx.test.orchestrator/androidx.test.orchestrator.AndroidTestOrchestrator
      Client not ready yet..
      Started running tests
      Tests ran to completion.



      Library Module Test - Result




      $ adb shell CLASSPATH=$(pm path android.support.test.services) app_process / android.support.test.services.shellexecutor.ShellMain am instrument -r -w -e targetInstrumentation com.cardstream.payment.test/androidx.test.runner.AndroidJUnitRunner   -e debug false -e class 'com.cardstream.payment.ExampleInstrumentedTest' android.support.test.orchestrator/android.support.test.orchestrator.AndroidTestOrchestrator
      Client not ready yet..
      Started running tests
      Test running failed: No test results
      Empty test suite.


      From the above logs, I can see the difference in test services used by both modules.




      Demo Module - androidx.test.services



      Library Module - android.support.test.services




      from the above observations, I have tried to covert those into similar behavior but unfortunately, I can't able to find any exact and valid answer or options.



      Configuration for Instrumentation Runner for both module



      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"


      Few test dependencies for both module



      testImplementation 'junit:junit:4.12'
      testImplementation 'org.robolectric:robolectric:4.1'

      androidTestImplementation 'androidx.test:core:1.1.0'
      androidTestImplementation 'androidx.test:core-ktx:1.1.0'
      androidTestImplementation 'androidx.test.ext:junit:1.1.0'
      androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.0'
      androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
      androidTestImplementation 'androidx.test:rules:1.1.1'
      androidTestImplementation 'androidx.test:runner:1.1.1'
      androidTestUtil 'androidx.test:orchestrator:1.1.1'


      I have created a new project with the library module and run the tests, it works fine for both modules(with support libraries).



      I have migrated newly created project with AndroidX and then also works fine for both modules.



      Hence, I am getting confused and can't able to figure out the solution for this situation as of now. I am looking forward to your help if anyone has any clues/suggestions/answers?










      share|improve this question














      I have an android project which contains 2 modules.




      1. Android Library Module

      2. Android Demo App Module for Library


      I have setup required Test dependency, Gradle configuration same for both the project.



      When I run a test from demo app it runs without any issue.
      But when the same sample test code run from a library module it can't able to find tests.



      Here is the log I can see from the "Run" tab in an android studio.




      Demo Module Test - Result




      $ adb shell CLASSPATH=$(pm path androidx.test.services) app_process / androidx.test.services.shellexecutor.ShellMain am instrument -r -w -e targetInstrumentation com.cardstream.paymentdemo.test/androidx.test.runner.AndroidJUnitRunner   -e debug false -e class 'com.cardstream.paymentdemo.ExampleInstrumentedTest' androidx.test.orchestrator/androidx.test.orchestrator.AndroidTestOrchestrator
      Client not ready yet..
      Started running tests
      Tests ran to completion.



      Library Module Test - Result




      $ adb shell CLASSPATH=$(pm path android.support.test.services) app_process / android.support.test.services.shellexecutor.ShellMain am instrument -r -w -e targetInstrumentation com.cardstream.payment.test/androidx.test.runner.AndroidJUnitRunner   -e debug false -e class 'com.cardstream.payment.ExampleInstrumentedTest' android.support.test.orchestrator/android.support.test.orchestrator.AndroidTestOrchestrator
      Client not ready yet..
      Started running tests
      Test running failed: No test results
      Empty test suite.


      From the above logs, I can see the difference in test services used by both modules.




      Demo Module - androidx.test.services



      Library Module - android.support.test.services




      from the above observations, I have tried to covert those into similar behavior but unfortunately, I can't able to find any exact and valid answer or options.



      Configuration for Instrumentation Runner for both module



      testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"


      Few test dependencies for both module



      testImplementation 'junit:junit:4.12'
      testImplementation 'org.robolectric:robolectric:4.1'

      androidTestImplementation 'androidx.test:core:1.1.0'
      androidTestImplementation 'androidx.test:core-ktx:1.1.0'
      androidTestImplementation 'androidx.test.ext:junit:1.1.0'
      androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.0'
      androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
      androidTestImplementation 'androidx.test:rules:1.1.1'
      androidTestImplementation 'androidx.test:runner:1.1.1'
      androidTestUtil 'androidx.test:orchestrator:1.1.1'


      I have created a new project with the library module and run the tests, it works fine for both modules(with support libraries).



      I have migrated newly created project with AndroidX and then also works fine for both modules.



      Hence, I am getting confused and can't able to figure out the solution for this situation as of now. I am looking forward to your help if anyone has any clues/suggestions/answers?







      android unit-testing android-espresso androidx android-instrumentation






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jan 3 at 10:19









      Jignesh PatelJignesh Patel

      732619




      732619
























          0






          active

          oldest

          votes












          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54020300%2fhow-to-run-instrumentation-test-with-androidx-on-application-as-well-as-library%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54020300%2fhow-to-run-instrumentation-test-with-androidx-on-application-as-well-as-library%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Can a sorcerer learn a 5th-level spell early by creating spell slots using the Font of Magic feature?

          ts Property 'filter' does not exist on type '{}'

          mat-slide-toggle shouldn't change it's state when I click cancel in confirmation window