greentea
<p><a href="https://os.mbed.com/docs/mbed-os/v5.14/tools/greentea-testing-applications.html">https://os.mbed.com/docs/mbed-os/v5.14/tools/greentea-testing-applications.html</a></p>
<p><code>greentea</code>测试在实际设备上运行,但也支持主机测试<code>host test</code>。</p>
<h3>测试代码结构</h3>
<p>测试文件放在<code>TEST</code>目录下,所有的测试都需要<code>main</code>函数
在工程目录下的<code>TEST</code>文件夹下需要有两个文件夹,这两个文件夹名可任意命名
<code>myproject/TESTS/test_group/test_case_1</code></p>
<h3>查找测试</h3>
<p><code>TARGET_, TOOLCHAIN_ or FEATURE_</code>前缀的文件夹,如
<code>myproject/mbed-os/features/FEATURE_BLE/TESTS/ble_tests/unit_test</code>.仅当BLE使能时有效,否则忽略这个测试。</p>
<p>在<code>.mbedignore</code>文件中可指定忽略某些测试</p>
<h3>构建过程</h3>
<p><code>tools</code>文件夹下<code>test.py</code>处理所有构建过程。</p>
<ol>
<li>构建非测试代码,但不连接它。输出的结果obj文件放到构建目录下。</li>
<li>找出所有满足<code>target</code>和<code>toolchain</code>的测试。</li>
<li>构建每个测试的所有源文件并与第一步的代码连接起来</li>
<li>若需规格文件,创建测试spec文件,并放到给定的目录下。默认放在构建目录下</li>
</ol>
<h3>应用配置</h3>
<p>由于<code>mbed_app.json</code>可以复写库,目标的配置。但所有测试都是共享的,如果这些测试有不同的配置会影响到<code>OS</code>这将导致一些问题。
构建系统在共享的工程文件查找<code>mbed_app.json</code>(任何不在TESTS目录下的文件夹)。若系统找到它,那么这个配置文件将用于构建非测试代码和每个测试用例。若找到多个<code>mbed_app.json</code>在源代码树中,配置系统将产出错误。
如果你需要测试多个配置文件,你可以使用<code>--app-config</code>选项。这将覆盖搜索到的<code>mbed_app.json</code>,使用它进行构建。</p>
<h3>编写测试用例</h3>
<p>然而一般测试都会涉及到外设。如:设备实际上是否连接到internet,或设备是否注册了云服务等,为了测试这些场景我们使用<code>host test</code>。在设备说开始做某事时,我们可以告知设备这个事件发生了。
可使用3个测试框架编写测试用例(框架在<code>/features/frameworks</code>目录下)</p>
<ul>
<li><code>UNITY</code></li>
<li><code>utest</code></li>
<li><code>Greentea client</code></li>
</ul>