1# OSU Unit Tests 2This package contains unit tests for the OSU app based on the 3[Android Testing Support Library](http://developer.android.com/tools/testing-support-library/index.html). 4The test cases are built using the [JUnit](http://junit.org/) and [Mockito](http://mockito.org/) 5libraries. 6 7## Running Tests 8The easiest way to run tests is simply run 9 10``` 11frameworks/base/packages/Osu2/tests/runtests.sh 12``` 13 14`runtests.sh` will build the test project and all of its dependencies and push the APK to the 15connected device. It will then run the tests on the device. 16 17To enable syncing data to the device for first time after clean reflash: 181. adb disable-verity 192. adb reboot 203. adb remount 21 22See below for a few example of options to limit which tests are run. 23See the 24[AndroidJUnitRunner Documentation](https://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner.html) 25for more details on the supported options. 26 27``` 28runtests.sh -e package com.android.osu 29runtests.sh -e class com.android.osu.NetworkConnectionTest 30``` 31 32If you manually build and push the test APK to the device you can run tests using 33 34``` 35adb shell am instrument -w 'com.android.osu.tests/android.support.test.runner.AndroidJUnitRunner' 36``` 37 38## Adding Tests 39Tests can be added by adding classes to the src directory. JUnit4 style test cases can 40be written by simply annotating test methods with `org.junit.Test`. 41 42## Debugging Tests 43If you are trying to debug why tests are not doing what you expected, you can add android log 44statements and use logcat to view them. The beginning and end of every tests is automatically logged 45with the tag `TestRunner`. 46