| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 27 天前 | ||
| 1 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 3 个月前 |
compiler unit testing
The re-built compiler unit testing for ace2.0.
Usage
Here are simplified instructions of how to get started. The following commands work both on Windows and Linux platforms.
1. Install
First, enter the root directory of the compiler:
$ cd compiler/
And then install the npm dependencies(You must have node&npm installed):
$ npm install
Note: If some errors occur, delete the generated package node_modules, config npm proxy and run npm install again.
npm config set proxy http://username:password@server:port
npm confit set https-proxy http://username:password@server:port
2. Quick Start
In the root directory of compiler/:
$ npm run etsTest
All test files in the compiler/test/transform_ut will be tested.
There are three test scenes, which is the same as the test cases with script command npm run test, are:
ut: Testing compiled .js file result from corresponding .ets files in the non-partial-update mode.utForPartialUpdate: Testing compiled .js file result from corresponding .ets files in the partial update mode.utForValidate: Testing expected catched error/warning logs result when compiling .ets files in the partial update mode.
3. Test Framework Overview
The re-built test framework is to mock a rollup object and create a DevEco sample application for testing.
In each test scene, the framework first configures shared parameters, then calls buildStart() hook from etsChecker rollup plugin. Then for each test case, the framework calls transform() hook from etsTransform rollup plugin. Finally, the framework compares and tests the results (i.e. compiled file content or error/warning logs) with the expected results.
The file structure of the test framework shows as follows:
ace_ets2bundle/compiler/
└──test
├── transform_ut
│ ├── application/entry # DevEco sample application
│ │ ├── build/default/cache/default/default@CompileArkTS/esmodule
│ │ │ └── debug/entry/src/main/ets/pages
│ │ │ ├── ut # ut compiled .js files
│ │ │ └── utForPartialUpdate # utForPartialUpdate compiled .js files
│ │ └── src
│ │ └── main/ets
│ │ │ ├── entryability
│ │ │ ├── entrybackupability
│ │ │ ├── pages
│ │ │ │ ├── ut # ut .ets source files
│ │ │ │ ├── utForPartialUpdate # utForPartialUpdate .ets source files
│ │ │ │ └── utForValidate # utForValidate .ets source files
│ │ │ └── test # external files used for import
│ │ └── mock
│ ├── helpers # test framework utils
│ │ ├── cache.ts # mock cache
│ │ ├── common.ts # common params
│ │ ├── logger.ts # mock logger
│ │ ├── mockRollupContext.ts # mock rollup
│ │ ├── module.ts # mock moduleInfo
│ │ ├── parser.ts # text parsing utils
│ │ ├── pathConfig.ts # file path configuration
│ │ ├── projectConfig.ts # projectConfig configuration
│ │ ├── share.ts # mock rollup share
│ │ └── utils.ts # other utils
│ ├── rollup_share.test.ts # test mock rollup
│ ├── ut_partial_update.test.ts # test utForPartialUpdate cases
│ ├── ut_validate.test.ts # test utForValidate cases
│ └── ut.test.ts # test ut cases
└── transform_ut_error.json # expected error logs in utForValidate
3. Add New Test Cases
You can add new test cases in different test scenes.
- Add .ets file as the source file: go to directory
compiler/test/transform_ut/application/entry/src/main/ets/pages, find the test scenes that you want to add (i.e.ut,utForPartialUpdate, orutForValidate), and then add a new test directory and put the .ets file inside. - Add expected result: According to the test scene that you want to add,
- If test scene is
ut, then go to directorycompiler/test/transform_ut/application/entry/build/default/cache/default/default@CompileArkTS/esmodule/debug/entry/src/main/ets/pages/ut, and then add a new test directory (same as the name used before) and put the expected compiled .js file inside. - If test scene is
utForPartialUpdate, then go to directorycompiler/test/transform_ut/application/entry/build/default/cache/default/default@CompileArkTS/esmodule/debug/entry/src/main/ets/pages/utForPartialUpdate, and then add a new test directory (same as the name used before) and put the expected compiled .js file inside. - If test scene is
utForValidate, then open JSON file atcompiler/test/transform_ut_error.json, and then add a new entry (same as the name used before) and put the expected error/wanrning logs inside.
- If test scene is
- Add new test case: Open file path configuration file at
compiler/test/transform_ut/helpers/pathConfig.ts. According to the test scene that you want to add,- If test scene is
ut, then add partial path name for the new test file you just created in toUT_PAGES. The partial path name is in the following template:<new test directory name>/<new test file name>. - If test scene is
utForPartialUpdate, then add partial path name for the new test file you just created in toUT_PARTIAL_UPFATE_PAGES. The partial path name is in the following template:<new test directory name>/<new test file name>. - If test scene is
utForValidate, then add partial path name for the new test file you just created in toUT_VALIDATE_PAGES. The partial path name is in the following template:<new test directory name>/<new test file name>.
- If test scene is
- Run test: run script command
npm run etsTestto run all test cases in thecompiler/test/transform_ut.