353 lines
12 KiB
Markdown
353 lines
12 KiB
Markdown
# Mobly Release History
|
|
|
|
|
|
## Mobly Release 1.11.1: Support Test Case `repeat` and `retry`.
|
|
|
|
### New
|
|
* Native support for `repeat` and `retry` of test cases.
|
|
* Additional assertion APIs.
|
|
* `android_device` now picks up `fastboot` devices if given `*`.
|
|
|
|
### Fixes
|
|
* Removed the usage of `psutil` in favor of native `Py3` features.
|
|
|
|
[Full list of changes](https://github.com/google/mobly/milestone/26?closed=1)
|
|
|
|
|
|
## Mobly Release 1.11: Py2 Deprecation and Repeat/Retry Support
|
|
|
|
This release focuses on code quality improvement, refactoring, and legacy
|
|
code removal.
|
|
|
|
Py2-specific workarounds and deprecated APIs are removed in this release.
|
|
We are also refactoring to use 2-space indentation and unit test system.
|
|
|
|
### New
|
|
* Framework support for test case level `repeat` and `retry`.
|
|
|
|
### Breaking Changes
|
|
* Removal of Py2 support
|
|
* Removal of the `monsoon` controller
|
|
|
|
### Fixes
|
|
* Various improvements in Android device controller
|
|
* More metadata collected for test runs
|
|
|
|
[Full list of changes](https://github.com/google/mobly/milestone/25?closed=1)
|
|
|
|
|
|
## Mobly Release 1.10.1: Incremental fixes
|
|
|
|
This release contains minor fixes and improvements.
|
|
|
|
### New
|
|
* API for taking screenshots in `AndroidDevice`
|
|
* Option to change the logging verbosity of the Mobly snippet client. The
|
|
default logging size is now capped.
|
|
|
|
### Fixes
|
|
* Resource leakage in `_print_test_name`.
|
|
* IDE compatibility.
|
|
* Bugs in unit tests.
|
|
|
|
[Full list of changes](https://github.com/google/mobly/milestone/24?closed=1)
|
|
|
|
|
|
## Mobly Release 1.10: Framework and `AndroidDevice` Output Improvements
|
|
|
|
*This is likely the last major release that preserves Py2 compatibility.*
|
|
|
|
### New
|
|
* `AndroidDevice` now has a new `is_emulator` property.
|
|
* Better multi-user support in `AndroidDevice`.
|
|
* Standardized logging and output file names.
|
|
* Improvement in `utils.concurrent_exec`.
|
|
* Support class-based decorator on Mobly test methods.
|
|
|
|
### Breaking Changes
|
|
Due to the standardization of output files for both Mobly and `AndroidDevice`
|
|
controller, if you have custom parser of Mobly outputs, you need to adjust
|
|
your parsing logic to accommodate the changes.
|
|
|
|
* Major change in output directory structure #650
|
|
* Names of `AndroidDevice`'s output files have been standardized #633
|
|
* Changed multiple references of `test_bed` to `testbed` in code #641
|
|
|
|
### Fixes
|
|
* `AndroidDevice`'s service manager behavior for reboot and USB disconnect.
|
|
|
|
[Full list of changes](https://github.com/google/mobly/milestone/23?closed=1)
|
|
|
|
|
|
## Mobly Release 1.9.1: Documentation Fix
|
|
|
|
Fix readthedocs documentation bug introduced in 1.9.
|
|
Strictly documentation fix, no code change.
|
|
|
|
[Full list of changes](https://github.com/google/mobly/milestone/22?closed=1)
|
|
|
|
|
|
## Mobly Release 1.9: UID Support; `AndroidDevice` and General Runner Improvements
|
|
|
|
### New
|
|
* Support specifying Unique Identifier (UID) for both static and generated test
|
|
methods.
|
|
|
|
### Breaking Changes
|
|
* Detached logger lifecycle from `TestRunner#run`. Suite users have to
|
|
explicitly use the new logger context around `TestRunner#run`.
|
|
* Removed the behavior of `BaseTestClass` as a context as it has been a no-op
|
|
for several releases.
|
|
* [Deprecation] Removed `BaseTestClass#clean_up` which was deprecated in 1.8.1.
|
|
* [Deprecation] Code path for passing args directly into a test method, which
|
|
was never used.
|
|
* [Deprecation] Service-related APIs deprecated in 1.8 are now removed,
|
|
including `AndroidDevice#load_sl4a`.
|
|
|
|
### Fixes
|
|
* Bug fixes and reliability improvements in `AdbProxy`.
|
|
* Improved APIs for taking bugreports
|
|
* Improvements in `AndroidDevice` service management
|
|
* Improvements in `AndroidDevice`'s `getprop` calls, including caching.
|
|
|
|
[Full list of changes](https://github.com/google/mobly/milestone/21?closed=1)
|
|
|
|
|
|
## Mobly Release 1.8.1: Fix Final Cleanup Stage Error Capture
|
|
|
|
### Fixes
|
|
* Errors from the final clean up stage are now properly recorded.
|
|
* NOTE: This may expose errors that have long existed in your tests. They are
|
|
usually caused by your test interrupting controller object life cycle
|
|
management. Fixing these issues would help keep your test env clean.
|
|
* Fixed docs config so `http://mobly.readthedocs.io` show all the classes
|
|
properly.
|
|
|
|
|
|
## Mobly Release 1.8: Controller Management and `AndroidDevice` Service
|
|
|
|
### New
|
|
* Modularized controller management logic by introducing `ControllerManager`.
|
|
* Introduced the service mechanism in `AndroidDevice`, life cycles management
|
|
of long-running processes for Android devices.
|
|
* Convenience method for creating per-test adb logcat
|
|
`logcat.create_per_test_excerpt`.
|
|
* `AdbError` now has `serial` as a direct attribute.
|
|
|
|
### Deprecated
|
|
The following APIs in `AndroidDevice` are deprecated:
|
|
* `start_services` -> `ad.services.start_all`
|
|
* `stop_services` -> `ad.services.stop_all`
|
|
* `start_adb_logcat` -> `ad.services.logcat_start`
|
|
* `stop_adb_logcat` -> `ad.services.logcat_stop`
|
|
|
|
### Fixes
|
|
* `expects` APIs crashing in certain execution stages.
|
|
* `setup_class`'s record is not recorded correctly in summary yaml.
|
|
* Controller info recoding
|
|
* adb logcat crashes
|
|
|
|
[Full list of changes](https://github.com/google/mobly/milestone/18?closed=1)
|
|
|
|
|
|
## Mobly Release 1.7.5: Dependency Cleanup
|
|
|
|
### Fixes
|
|
* Only install test dependencies when running the unit tests.
|
|
* Allow `CallbackHandler.waitForEvent` to wait for longer than the max rpc
|
|
timeout.
|
|
|
|
[Full list of changes.](https://github.com/google/mobly/milestone/19?closed=1)
|
|
|
|
|
|
## Mobly Release 1.7.4: Better debug logs
|
|
Added framework DEBUG level log generated by Mobly:
|
|
* Log test configuration at the beginning.
|
|
* Log boundaries of each execution stage.
|
|
* Log snippet client calls.
|
|
|
|
### New
|
|
* Support suffixing test class name in a suite.
|
|
* API to unload a single snippet from `AndroidDevice`.
|
|
|
|
### Fixes
|
|
* Fixes in `BaseTestClass`.
|
|
* Fixes for running on Windows.
|
|
|
|
[Full list of changes.](https://github.com/google/mobly/milestone/17?closed=1)
|
|
|
|
|
|
## 1.7.3: Windows support fixes
|
|
|
|
### New
|
|
* `self.current_test_info` now exists for `setup_class` stage.
|
|
* adb calls through `AdbProxy` can now propagate stderr.
|
|
* Instrumentation runner now outputs timestamp for each test.
|
|
|
|
### Fixes
|
|
* Fix several bugs for running on Windows.
|
|
|
|
[Full list of changes.](https://github.com/google/mobly/milestone/16?closed=1)
|
|
|
|
|
|
## 1.7.2: Custom Info in Test Summary
|
|
|
|
### New
|
|
* Support adding additional blocks in test summary file.
|
|
* `SnippetEvent` is now loggable.
|
|
|
|
### Fixes
|
|
* Fix several bugs in error reporting.
|
|
* Fix log persist crashing Mobly on certain devices.
|
|
|
|
[Full list of changes.](https://github.com/google/mobly/milestone/15?closed=1)
|
|
|
|
|
|
## 1.7.1: Bug Fixes
|
|
|
|
### New
|
|
* Allow setting up logger before test class execution. Useful for suites.
|
|
|
|
### Fixes
|
|
* Fix recording of `teardown_class` failures in new output format.
|
|
* Properly handle calling `asserts.abort_all` in `on_fail`.
|
|
* Minor fixes for Windows support.
|
|
|
|
[Full list of changes.](https://github.com/google/mobly/milestone/14?closed=1)
|
|
|
|
|
|
## 1.7: Expectation APIs and Instrumentation Test Runner
|
|
|
|
### New
|
|
* APIs for specifying expectation in test for delayed test termination.
|
|
`mobly.expects`
|
|
* A runner class for easily running regular Instrumentation tests with Mobly.
|
|
[Tutorial](https://github.com/google/mobly/blob/master/docs/instrumentation_tutorial.md).
|
|
* API to get runtime test info during the test.
|
|
* Support specifying file location and timeout in `take_bug_report`.
|
|
* Support changing device serial during test. Needed for remote devices.
|
|
* Allow adding custom controller info for `AndroidDevice`.
|
|
|
|
### Breaking Changes
|
|
* Monsoon config format change:
|
|
Old: `'Monsoon': [123, 456]`
|
|
New: `'Monsoon': [{'serial': 123}, {'serial': 456'}]`
|
|
|
|
### Deprecated
|
|
* Old output files.
|
|
|
|
[Full list of changes.](https://github.com/google/mobly/milestone/13?closed=1)
|
|
|
|
|
|
## 1.6.1: New Output
|
|
|
|
### New
|
|
* New output file scheme, with better clarity and streamable summary file.
|
|
* Improved result reporting: more consistent, more debug info, no hiding
|
|
errors.
|
|
* adb commands now support timeout param.
|
|
E.g. `adb.wait_for_device(timeout=10)`
|
|
|
|
### Breaking Changes
|
|
* Signature change of procedure functions like `on_fail`.
|
|
* Old: `on_fail(test_name, begin_time)`
|
|
* New: `on_fail(record)`
|
|
|
|
### Deprecated
|
|
* Old generated test code path
|
|
* Support for old snippet protocol (v0)
|
|
|
|
Full list of fixes [here](https://github.com/google/mobly/milestone/12?closed=1).
|
|
|
|
|
|
## 1.5: New Snippet Startup Protocol
|
|
* Improved compatibility between v1 snippets and older devices/emulators
|
|
* Support temporarily disconnecting (without rebooting) Android devices from
|
|
USB in a test, useful for power measurement.
|
|
* Fixes critical bugs from 1.4.1
|
|
|
|
|
|
## 1.4.1 [DO NOT USE]: New Snippet Startup Protocol
|
|
Warning: This release has multiple issues; please use 1.5.
|
|
|
|
New
|
|
* Support the new launch and connection mechanism in Snippet Lib 1.2.
|
|
|
|
Fixes
|
|
* a bug in `generate_tests` that prevents it to be called when wrapped in
|
|
other functions.
|
|
* a bug that exposed Mobly internal controller registry to tests.
|
|
|
|
Deprecate
|
|
* Old snippet launch protocol (V0)
|
|
|
|
|
|
## 1.4: Generated Test Revamp
|
|
New
|
|
* Brand new generated test. See `BaseTestClass.generate_tests`
|
|
*Please switch to new one since we're deprecating the old one.*
|
|
* Support creating test suites where each class has a different config.
|
|
* Support usb id as device identifier.
|
|
* The token that marks begin and end of the test in logs has changed from
|
|
`[Test Case]` to `[Test]`.
|
|
* Launch MBS without package name with `snippet_shell.py --mbs`
|
|
* adb binary location can now be modified by test code.
|
|
|
|
Fixes
|
|
* Clear adb logcat cache before starting collection.
|
|
* Use default `adb logcat` buffer. if you need additional logcat buffers, set
|
|
`-b <buffer name>` with `adb_logcat_param` in the config for AndroidDevice.
|
|
* Time out sooner when snippet server stops responding.
|
|
|
|
Deprecate
|
|
* Old generated tests (run_generated_tests)
|
|
|
|
|
|
## 1.3: Test Suite; Windows Support and Cli Shell Changes
|
|
* Support running on Windows.
|
|
* Add support for creating test suites.
|
|
* Support UIAutomator in snippet.
|
|
* Fixes to adb commands to avoid double-quoting and fix cross-platform issues.
|
|
* adb commands are now run without local shell. For commands with more
|
|
than one argument, pass in a list of arguments instead of a string. Eg
|
|
`adb.logcat("-c -v")` becomes `adb.logcat(["-c", "-v"])`.
|
|
* `utils.start_standing_process()` run without local shell by default
|
|
* `utils.exe_cmd()` removed. Use `subprocess.check_output()` instead.
|
|
|
|
|
|
## 1.2.1: New Config Format and Async Rpc Support
|
|
* Fixes critical bugs in 1.2
|
|
|
|
|
|
## 1.2 [DO NOT USE]: New Config Format and Async Rpc Support
|
|
Warning: This release has multiple issues; please use 1.2.1.
|
|
|
|
* New config format with clear compartmentalization of different types of
|
|
configs.
|
|
* Utilize yaml format instead of json for new config.
|
|
* Added support for Mobly Snippet Lib's Asynchronous Rpc calls.
|
|
* Added support for handling async events from async Rpc calls.
|
|
* Various improvements and bug fixes.
|
|
|
|
|
|
## 1.1.2: SL4A Default No More
|
|
* Stop making sl4a a default requirement.
|
|
* Require explicitly starting sl4a with `AndroidDevice.load_sl4a`.
|
|
* Fix in `android_device` and `snippet_client`
|
|
* Fix various other minor issues.
|
|
|
|
|
|
## 1.1.1: AndroidDevice Controller Improvements
|
|
* Bug fixes and improvements in AndroidDevice controller.
|
|
|
|
|
|
## 1.1: Snippet support
|
|
* Add a client for making Rpc calls to apps built with [Mobly Snippet Library]
|
|
(https://github.com/google/mobly-snippet-lib).
|
|
* Add a controller lib for attenuators.
|
|
* Add customizable log prefix tag in AndroidDevice for better device-level
|
|
logging.
|
|
|
|
|
|
## 1.0: Initial release
|