diff --git a/en/readme/test_subsystem.md b/en/readme/test_subsystem.md index 5854b2d47cb3dc63ca9eb40065e6f32a55751109..c548455b7471b4aae4d7ff81fb19ca4673f81f5d 100644 --- a/en/readme/test_subsystem.md +++ b/en/readme/test_subsystem.md @@ -4,7 +4,7 @@ OpenHarmony provides a comprehensive auto-test framework for designing test case This document describes how to use the OpenHarmony test framework. ## Setting Up the Environment The test framework depends on the Python running environment. Before using the test framework, set up the environment as follows: - - [Setting Up the Environment](../device-dev/subsystems/subsys-testguide-test.md#section175012297491) + - [Setting Up the Environment](../device-dev/subsystems/subsys-testguide-envbuild.md) - [Obtaining Source Code](../device-dev/get-code/sourcecode-acquire.md) @@ -39,21 +39,23 @@ subsystem # Subsystem │ │ ├── unittest # Unit test │ │ │ ├── common # Common test cases │ │ │ │ ├── BUILD.gn # Build file of test cases -│ │ │ │ ├── testA_test.cpp # Source code of unit test cases +│ │ │ │ └── testA_test.cpp # Source code of unit test cases │ │ │ ├── phone # Test cases for mobile phones │ │ │ ├── ivi # Test cases for head units │ │ │ └── liteos-a # Test cases for the IP cameras that use the LiteOS kernel -│ │ └── resource # Dependency resources -│ │ └── ohos_test.xml +│ │ ├── moduletest # Module test +│ │ ... +│ │ │ ├── moduleB # Module B │ ├── test -│ │ └── moduletest # Module test -│ │ ├── common -│ │ ├── phone -│ │ ├── ivi -│ │ └── liteos-a -│ │ ... -│ └── ohos_build # Build entry configuration +│ │ └── resource # Dependency resources +│ │ ├── moduleA # Module A +│ │ │ ├── ohos_test.xml # Resource configuration file +│ │ ... └── 1.txt # Resource +│ │ +│ ├── ohos_build # Build entry configuration +│ ... +│ ... ``` > **Note:** Test cases are classified into common test cases and device-specific test cases. You are advised to place common test cases in the **common** directory and device-specific test cases in the directories of the related devices. @@ -230,11 +232,15 @@ Example: - The expected result of each test case must have an assertion. - The test case level must be specified. - It is recommended that the test be implemented step by step according to the template. - - The comment must contain the test case name, description, type, and requirement number. The test case description must be in the @tc.xxx format. The test case type @tc.type can be any of the following: + - The comment must contain the test case name, description, type, and requirement number, which are in the @tc.*xxx*: *value* format. The test case description must be in the @tc.xxx format. The test case type @tc.type can be any of the following: - | Test Case Type|Function test|Performance test|Reliability test|Security test|Fuzz test| - | ------------|------------|------------|------------|------------|------------| - | Code|FUNC|PERF|RELI|SECU|FUZZ| + | Test Case Type|Code| + | ------------|------------| + |Function test |FUNC| + |Performance test |PERF| + |Reliability test |RELI| + |Security test |SECU| + |Fuzz test |FUZZ| **JavaScript Test Case Example** @@ -632,9 +638,9 @@ Configure the part build file to associate with specific test cases. Test case resources include external file resources, such as image files, video files, and third-party libraries, required for test case execution. Perform the following steps: -1. Under the **test** directory of a part or module, create the **resource** directory to store resource files. +1. Create the **resource** directory in the **test** directory of the part, and create a directory for the module in the **resource** directory to store resource files of the module. -2. In the **resource** directory, create the **ohos_test.xml** file in the following format: +2. In the module directory under **resource**, create the **ohos_test.xml** file in the following format: ``` @@ -649,14 +655,14 @@ Perform the following steps: 3. In the build file of the test cases, configure **resource\_config\_file** to point to the resource file **ohos\_test.xml**. ``` ohos_unittest("CalculatorSubTest") { - resource_config_file = "//system/subsystem/partA/calculator/test/resource/ohos_test.xml" + resource_config_file = "//system/subsystem/partA/test/resource/calculator/ohos_test.xml" } ``` >**Note:** >- **target_name** indicates the test suite name defined in the **BUILD.gn** file in the **test** directory. >- **preparer** indicates the action to perform before the test suite is executed. >- **src="res"** indicates that the test resources are in the **resource** directory under the **test** directory. - >- **src="out"** indicates that the test resources are in the **out/release/$(component)** directory. + >- **src="out"** indicates that the test resources are in the **out/release/$(part)** directory. ## Executing Test Cases Before executing test cases, you need to modify the configuration based on the device used. @@ -730,7 +736,7 @@ When the build is complete, the test cases are automatically saved in the **out/ 3. Modify the **user_config.xml** file. ``` - . + false @@ -757,16 +763,16 @@ When the build is complete, the test cases are automatically saved in the **out/ ``` In the command: ``` - -t [TESTTYPE]: specifies the test case type, which can be UT, MST, ST, or PERF. This parameter is mandatory. - -tp [TESTTYPE]: specifies a part, which can be used independently. - -tm [TESTTYPE]: specifies a module. This parameter must be specified together with -tp. - -ts [TESTTYPE]: specifies a test suite, which can be used independently. - -tc [TESTTYPE]: specifies a test case. This parameter must be specified together with -ts. + -t [TESTTYPE]: specifies the test type, which can be UT, MST, ST, or PERF. This parameter is mandatory. + -tp [TESTPART]: specifies the part to test. This parameter can be used independently. + -tm [TESTMODULE]: specifies the module to test. This parameter must be used together with -tp. + -ts [TESTSUITE]: specifies the test suite. This parameter can be used independently. + -tc [TESTCASE]: specifies the test case. This parameter must be used together with -ts. You can run -h to display help information. ``` ### Executing Test Cases on Linux #### Mapping Remote Port -To enable test cases to be executed on a remote Linux server or a Linux VM, map the port to enable communication between the device and the remove server or VM. Configure port mapping as follows: +To enable test cases to be executed on a remote Linux server or a Linux VM, map the port to enable communication between the device and the remote server or VM. Configure port mapping as follows: 1. On the HDC server, run the following commands: ``` hdc_std kill @@ -797,11 +803,11 @@ To enable test cases to be executed on a remote Linux server or a Linux VM, map ``` In the command: ``` - -t [TESTTYPE]: specifies the test case type, which can be UT, MST, ST, or PERF. This parameter is mandatory. - -tp [TESTTYPE]: specifies a part, which can be used independently. - -tm [TESTTYPE]: specifies a module. This parameter must be specified together with -tp. - -ts [TESTTYPE]: specifies a test suite, which can be used independently. - -tc [TESTTYPE]: specifies a test case. This parameter must be specified together with -ts. + -t [TESTTYPE]: specifies the test type, which can be UT, MST, ST, or PERF. This parameter is mandatory. + -tp [TESTPART]: specifies the part to test. This parameter can be used independently. + -tm [TESTMODULE]: specifies the module to test. This parameter must be used together with -tp. + -ts [TESTSUITE]: specifies the test suite. This parameter can be used independently. + -tc [TESTCASE]: specifies the test case. This parameter must be used together with -ts. You can run -h to display help information. ```