> **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.
> **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.
...
@@ -200,7 +202,7 @@ Example:
...
@@ -200,7 +202,7 @@ Example:
```
```
/**
/**
* @tc.name: integer_sub_001
* @tc.name: integer_sub_001
* @tc.desc: Verify the subfunction.
* @tc.desc: Verify the sub-function.
* @tc.type: FUNC
* @tc.type: FUNC
* @tc.require: Issue Number
* @tc.require: Issue Number
*/
*/
...
@@ -215,7 +217,7 @@ Example:
...
@@ -215,7 +217,7 @@ Example:
```
```
The following test case templates are provided for your reference.
The following test case templates are provided for your reference.
| Template| Description|
| Type| Description|
| ------------| ------------|
| ------------| ------------|
| HWTEST(A,B,C)| Use this template if the test case execution does not depend on setup or teardown.|
| HWTEST(A,B,C)| Use this template if the test case execution does not depend on setup or teardown.|
| HWTEST_F(A,B,C)| Use this template if the test case execution (excluding parameters) depends on setup and teardown.|
| HWTEST_F(A,B,C)| Use this template if the test case execution (excluding parameters) depends on setup and teardown.|
...
@@ -230,11 +232,15 @@ Example:
...
@@ -230,11 +232,15 @@ Example:
- The expected result of each test case must have an assertion.
- The expected result of each test case must have an assertion.
- The test case level must be specified.
- The test case level must be specified.
- It is recommended that the test be implemented step by step according to the template.
- 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, which are in the @tc.xxx: value 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 type @**tc.type** can be any of the following:
| Test Case Type|Function test|Performance test|Reliability test|Security test|Fuzz test|
@@ -407,7 +413,7 @@ The following provides templates for different languages for your reference.
...
@@ -407,7 +413,7 @@ The following provides templates for different languages for your reference.
deps = [":CalculatorSubTest"]
deps = [":CalculatorSubTest"]
}
}
```
```
The build file is configured as follows:
The procedure is as follows:
1. Add comment information for the file header.
1. Add comment information for the file header.
```
```
...
@@ -632,9 +638,9 @@ Configure the part build file to associate with specific test cases.
...
@@ -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.
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:
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:
```
```
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<configuration ver="2.0">
<configuration ver="2.0">
...
@@ -649,14 +655,13 @@ Perform the following steps:
...
@@ -649,14 +655,13 @@ 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**.
3. In the build file of the test cases, configure **resource\_config\_file** to point to the resource file **ohos\_test.xml**.
>- **target_name** indicates the test suite name defined in the **BUILD.gn** file in the **test** directory.
>- **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.
>- **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/$(*part*)** directory.
>- **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/$(part)** directory.
## Executing Test Cases
## Executing Test Cases
Before executing test cases, you need to modify the configuration based on the device used.
Before executing test cases, you need to modify the configuration based on the device used.
...
@@ -715,16 +720,17 @@ Test cases cannot be built on Windows. You need to run the following command to
...
@@ -715,16 +720,17 @@ Test cases cannot be built on Windows. You need to run the following command to
> - --**product-name**: specifies the name of the product to build, for example, **Hi3516DV300**.
>- **product-name**: specifies the name of the product to build, for example, **Hi3516DV300**.
> - --**build-target**: specifies the target to build. It is optional. **make_test** indicates all test cases. You can set the build options based on requirements.
>- **build-target**: specifies the test case to build. **make_test** indicates all test cases. You can specify the test cases based on requirements.
When the build is complete, the test cases are automatically saved in the **out/hi3516dv300/packages/phone/tests** directory.
After the build is complete, the test cases are automatically saved in **out/hi3516dv300/packages/phone/tests**.
#### Setting Up the Execution Environment
#### Setting Up the Execution Environment
1. On Windows, create the **Test** directory in the test framework and then create the **testcase** directory in the **Test** directory.
1. On Windows, create the **Test** directory in the test framework and then create the **testcase** directory in the **Test** directory.
2. Copy **developertest** and **xdevice** from the Linux environment to the **Test** directory on Windows, and copy the test cases to the **testcase** directory.
2. Copy **developertest** and **xdevice** from the Linux environment to the **Test** directory on Windows, and copy the test cases to the **testcase** directory.
>**Note**: Port the test framework and test cases from the Linux environment to the Windows environment for subsequent execution.
>**Note**: Port the test framework and test cases from the Linux environment to the Windows environment for subsequent execution.
3. Modify the **user_config.xml** file.
3. Modify the **user_config.xml** file.
...
@@ -757,15 +763,15 @@ When the build is complete, the test cases are automatically saved in the **out/
...
@@ -757,15 +763,15 @@ When the build is complete, the test cases are automatically saved in the **out/
```
```
In the command:
In the command:
```
```
-t [TESTTYPE]: specifies the test type, which can be UT, MST, ST, or PERF. This parameter is mandatory.
-t [TESTTYPE]: specifies the test case 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.
-tp [TESTPART]: specifies the part to test. This parameter can be used independently.
-tm [TESTMODULE]: specifies the module to test. This parameter must be specified together with -tp.
-tm [TESTMODULE]: specifies the module to test. This parameter must be specified together with -tp.
-ts [TESTSUITE]: specifies the test suite. This parameter can be used independently.
-ts [TESTSUITE]: specifies the test suite. This parameter can be used independently.
-tc [TESTCASE]: specifies the test case. This parameter must be specified together with -ts.
-tc [TESTCASE]: specifies the test case. This parameter must be specified together with -ts.
You can run -h to display help information.
-You can run h to display help information.
```
```
### Executing Test Cases on Linux
### Executing Test Cases on Linux
#### Mapping Remote Port
#### Mapping the 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 remote 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:
1. On the HDC server, run the following commands:
```
```
...
@@ -797,12 +803,12 @@ To enable test cases to be executed on a remote Linux server or a Linux VM, map
...
@@ -797,12 +803,12 @@ To enable test cases to be executed on a remote Linux server or a Linux VM, map
```
```
In the command:
In the command:
```
```
-t [TESTTYPE]: specifies the test type, which can be UT, MST, ST, or PERF. This parameter is mandatory.
-t [TESTTYPE]: specifies the test case 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.
-tp [TESTPART]: specifies the part to test. This parameter can be used independently.
-tm [TESTMODULE]: specifies the module to test. This parameter must be specified together with -tp.
-tm [TESTMODULE]: specifies the module to test. This parameter must be specified together with -tp.
-ts [TESTSUITE]: specifies the test suite. This parameter can be used independently.
-ts [TESTSUITE]: specifies the test suite. This parameter can be used independently.
-tc [TESTCASE]: specifies the test case. This parameter must be specified together with -ts.
-tc [TESTCASE]: specifies the test case. This parameter must be specified together with -ts.