diff options
Diffstat (limited to 'poky/meta/lib/oeqa/core/README')
-rw-r--r-- | poky/meta/lib/oeqa/core/README | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/poky/meta/lib/oeqa/core/README b/poky/meta/lib/oeqa/core/README new file mode 100644 index 0000000000..d4fcda41f2 --- /dev/null +++ b/poky/meta/lib/oeqa/core/README @@ -0,0 +1,76 @@ += OEQA (v2) Framework = + +== Introduction == + +This is version 2 of the OEQA framework. Base clases are located in the +'oeqa/core' directory and subsequent components must extend from these. + +The main design consideration was to implement the needed functionality on +top of the Python unittest framework. To achieve this goal, the following +modules are used: + + * oeqa/core/runner.py: Provides OETestResult and OETestRunner base + classes extending the unittest class. These classes support exporting + results to different formats; currently RAW and XML support exist. + + * oeqa/core/loader.py: Provides OETestLoader extending the unittest class. + It also features a unified implementation of decorator support and + filtering test cases. + + * oeqa/core/case.py: Provides OETestCase base class extending + unittest.TestCase and provides access to the Test data (td), Test context + and Logger functionality. + + * oeqa/core/decorator: Provides OETestDecorator, a new class to implement + decorators for Test cases. + + * oeqa/core/context: Provides OETestContext, a high-level API for + loadTests and runTests of certain Test component and + OETestContextExecutor a base class to enable oe-test to discover/use + the Test component. + +Also, a new 'oe-test' runner is located under 'scripts', allowing scans for components +that supports OETestContextExecutor (see below). + +== Terminology == + + * Test component: The area of testing in the Project, for example: runtime, SDK, eSDK, selftest. + + * Test data: Data associated with the Test component. Currently we use bitbake datastore as + a Test data input. + + * Test context: A context of what tests needs to be run and how to do it; this additionally + provides access to the Test data and could have custom methods and/or attrs. + +== oe-test == + +The new tool, oe-test, has the ability to scan the code base for test components and provide +a unified way to run test cases. Internally it scans folders inside oeqa module in order to find +specific classes that implement a test component. + +== Usage == + +Executing the example test component + + $ source oe-init-build-env + $ oe-test core + +Getting help + + $ oe-test -h + +== Creating new Test Component == + +Adding a new test component the developer needs to extend OETestContext/OETestContextExecutor +(from context.py) and OETestCase (from case.py) + +== Selftesting the framework == + +Run all tests: + + $ PATH=$PATH:../../ python3 -m unittest discover -s tests + +Run some test: + + $ cd tests/ + $ ./test_data.py |