1# 测试用例运行指导
2
3本指导以RK3568为例,介绍Neural Network Runtime测试用例的执行流程:
4
51. 编译测试用例。
6
7    调用以下命令编译 Neural Network Runtime 单元测试用例和系统测试用例。
8
9    ```shell
10    ./build.sh --product-name rk3568 --ccache --build-target nnrt_test_target --jobs 4
11    ```
12
13    编译完成后,在`out/rk3568/tests`目录下找到单元测试用例和系统测试用例,如下图所示:
14
15    ```text
16    /out/rk3568/tests
17    ├── systemtest                         # 系统测试用例存放目录
18    │   └── neural_network_runtime         # Neural Network Runtime系统测试用例存放目录
19    └── unittest                           # 单元测试用例存放目录
20        └── neural_network_runtime         # Neural Network Runtime测试单元用例存放目录
21    ```
22
232. 上传测试用例。
24
25    执行以下代码,将测试用例推送到设备。
26
27    ```shell
28    hdc_std shell "mkdir /data/local/tmp/nnrt_test"
29    hdc_std file send ./out/rk3568/tests/unittest/neural_network_runtime/. /data/local/tmp/nnrt_test
30    hdc_std file send ./out/rk3568/tests/systemtest/neural_network_runtime/. /data/local/tmp/nnrt_test
31    ```
32
333. 执行单元测试用例。
34
35    以`NeuralNetworkRuntimeTest`为例,执行单元测试。
36
37    ```shell
38    hdc_std shell "chmod 755 /data/local/tmp/nnrt_test/NeuralNetworkRuntimeTest"
39    hdc_std shell "/data/local/tmp/nnrt_test/NeuralNetworkRuntimeTest"
40    ```
41
42    如果用例全部通过,应该得到以下输出:
43
44    ```text
45    [==========] 106 tests from 1 test suite ran. (101ms total)
46    [  PASSED  ] 106 tests.
47    ```
48
494. 执行系统测试用例(可选)。
50
51    以`End2EndTest`为例,执行以下指令,运行系统测试。
52
53    ```shell
54    hdc_std shell "chmod 755 /data/local/tmp/nnrt_test/End2EndTest"
55    hdc_std shell "/data/local/tmp/nnrt_test/End2EndTest"
56    ```
57
58    如果用例全部通过,应该得到以下输出:
59
60    ```text
61    [==========] 8 tests from 1 test suite ran. (648ms total)
62    [  PASSED  ] 8 tests.
63    ```
64
65    > **说明:**
66    >
67    > 系统测试需要在提供Neural Network Runtime加速芯片驱动的设备上执行,加速芯片驱动的开发请参考[Neural Network Runtime设备开发指导](./example/drivers/README_zh.md)。
68