Getting JUnit results for android sdk 30 emulator - android

I have a jenkins job running tests on android emulator! When we run the tests on android sdk version 28, we are getting the junit results. But when we run on android sdk-30 emulator, we are not getting any junit results! The only change done is changing the version of the sdk. Going through the console logs, we are seeing the tests being executed, but the final result is not getting published! Anyone worked on android sdk30 on jenkins with junit?
This is the error that I see on the console
HH:mm:ss Recording test results
HH:mm:ss No test report files were found. Configuration error?
Thank you,
Kartik
I have tried to find any xml files on the android emulator, but I could not find any xml files on the emulator.
For most of the file system, I get permission denied when trying to list the emulator contents.

Related

sts-engbuild is depreciated

I used to run sts suite by executing 'run sts-engbuid' on a Android 10 device and it worked well. Recently I am trying to run sts test suite on android 11 but it complains that I can't use the command 'run sts-engbuild' to start sts since it is depreciated. It asks me to run sts-dynamic-incremental even though the README file still asks user to run the sts in the old way. Has anyone experience with this?
//Farshid

Not applicable for "main.dart" configuration

My Android Studio emulator is up and running yet when I run the code, I realize the emulator does not show the code I run.
I tried out some of the solutions like; Project Structure>Project and I chose the latest Android API there and then to Modules and did same thing, yet did not work.
Instead, after these changes, I got an error message saying IDE Error, that I should report the problem

Android Studio 3.2 empty test suite

I have created a new project in Android Studio 3.2. Without making any changes I am not able to run all the unit tests in the group. I receive and error saying No tests were found
I am attempting to run the tests by right clicking on the group and clicking Run Tests.
I can run the unit tests if I open up the file and click on the run button next to the class declaration. I can also run the unit tests if I open the project in Android Studio 3.1.4. I can right click on the group and run all the unit tests with no error.
Looking at this bug report, I think it should be fixed in 3.2.1: https://issuetracker.google.com/issues/115708445#comment12
After spending an entire day trying resolve this while writing some unit tests I found one workaround that works for my project.
Basically what my workaround is to add Build to the Before launch options.
After adding this option I'll occasionally get the No tests found error message but simply rerunning the test worked every time after adding that setting.
I'm not sure if it will help with everyone's problem but it seems to have mitigated the issue with my project. Hopefully this works for someone else as well.
The workaround until the bug is fixed is running tests in terminal, just type:
./gradlew test
or
./gradlew testDebugUnitTest. If you are using Windows replace ./gradlew with gradlew.bat. You can also download Android Studio 3.3 Canary from here https://developer.android.com/studio/preview/ – there aren't problems with running tests via this version.

Test launch failed due to internal error: Running tests on UI thread

I am creating a unit testing project for my application. It was working fine before. but I had updated the ADT plugin and android SDK. after that I could launch this project but cannot separately run the test cases. It will execute first test case and then stop. Before I could manually execute the second testcase. But now when I tried to do that I got error "Test launch failed due to internal error: Running tests on UI thread".please help me to solve this...
note:using robotium 3.2.1
Are you running the indidual method from a test from the Eclipse Junit window? Try running the test method from project explorer. Right click and run from the Project Explorer, not the JUnit window.
RightHandedMonkey's work-around works for me.
It also looks like this is a known issue and will be fixed in ADT 21 (see: http://code.google.com/p/android/issues/detail?id=34170)
There's also a changelist there to pull the fix if you are building the ADT from source.

Android: How to Install the Instrumentation APK onto an AVD in a Headless Host

I'm trying to integrate Android JUnit tests with our Bamboo Ant builds. I've already tested the setup locally, and I'm able to run tests.
But when I tried the same setup in our Bamboo server, I get the following error when running the tests:
INSTRUMENTATION_STATUS: id=ActivityManagerService
INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.synapticstuff.guitartabs/pl.polidea.instrumentation.PolideaInstrumentationTestRunner}
INSTRUMENTATION_STATUS_CODE: -1
android.util.AndroidException: INSTRUMENTATION_FAILED: com.synapticstuff.guitartabs/pl.polidea.instrumentation.PolideaInstrumentationTestRunner
Note that I used a custom library for Instrumentation (http://code.google.com/p/the-missing-android-xml-junit-test-runner/), so that I can pull the JUNit xml test results and feed it to Bamboo.
Also, the build agent used in creating the build is an Ubuntu VM, which doesn't have any GUI so I need to do everything via command line. An AVD is already running on that VM.
I did encounter the same problem when I first ran the adb shell am instrument .. <snip> command locally, and I found it weird it worked after running the test from Eclipse.
Looking up the error log, the Android Instrumentation Framework article tells me that
"It's possible that the
instrumentation apk isn't installed on
your device or that the package name
is incorrect in the Manifest file."
so it must be that the instrumentation apk isn't installed.
So, how do I install the instrumentation apk onto the AVD?
Thanks!
There are probably multiple situations that can cause this error, but I got it from not having an instrumented version of the test package installed on the emulator. Documentation is a bit scant, but I don't think there's an "instrumentation APK" that you install onto the emulator (at least I couldn't find such a thing); you build your test application with instrumentation included. Anyway, this is how I run tests from the command line using ant, which now works:
ant instrument install test
and this also works running on Jenkins using the Android emulator plugin (https://wiki.jenkins-ci.org/display/JENKINS/Android+Emulator+Plugin). I found the instrument task in the command line build documentation here: http://developer.android.com/tools/building/building-cmdline.html.
There is another possible reason: the package name is incorrect in the Manifest file.
Check the package name in your unit test project's manifest file first!
I am also one of the few people who downloaded that custom InstrumentationTestRunner (http://code.google.com/p/the-missing-android-xml-junit-test-runner/) and I am currently stuck on this issue! I get the same error message, unfortunately I do not know the answer right now, but will update when I discover something helpful.
In the meantime I looked for other options like this person's Test Runner: http://www.alittlemadness.com/2010/07/14/android-testing-xml-reports-for-continuous-integration/
There is also another discussion related to continuous integration: How to Generate Android Testing Report in HTML Automatically
you can maybe solve this, if you add to your build script:
adb install -r testproject/bin/testproject.apk
checkout first how the apk-file is being named, because i still didn't figure out, how ant is going to do that exactly, but it's being created usually in bin directory.
See also the official android documentation.
I ran into this problem when running my tests against an old Android 1.5 virtual device. After switching to a 2.3.3 virtual device the problem went away. I don't know if the problem is due to the virtual device OS being old or the virtual device being created with old Android SDK tools.
I was running into the exact same problem with running an android build under Bamboo. I found that for some reason the android:targetPackage element in my test project manifest was incorrect. It was set to be the package of my main project, not the test project. For some reason running when running the tests in eclipse eveything worked fine, but it died when I tried to run the ant test at the command line. The instrumentation instrumentation tag read:
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.blah" />
This was automatically generated by eclipse when I created the project. I changed it to read:
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.blah.test" />
and suddenly everything ran fine.

Categories

Resources