Skip to main content

在 Visual Studio Code 中测试 CodeQL 查询

您可以使用 Visual Studio Code 扩展为 CodeQL 查询运行单元测试。

在本文中

在 VS Code

中测试查询

若要确保 CodeQL 查询生成预期结果,可以运行将预期查询结果与实际结果进行比较的测试。

该 CodeQL 扩展会自动向“测试”视图注册自身。 此视图显示在当前工作区中找到的所有测试,并提供用于在工作区中浏览和运行测试的 UI。

有关创建 CodeQL 测试的详细信息,请参阅 测试自定义查询

若要查看运行单元测试的更详细的输出,请打开 CodeQL 测试日志。 有关详细信息,请参阅 访问 CodeQL 在 Visual Studio Code 的日志

测试查询结果

  1. 在 Visual Studio Code侧栏中打开“测试”视图。

  2. 要运行特定测试,请将鼠标悬停在文件或文件夹名称上,然后单击“开始”按钮。 要在工作区中运行所有测试,请单击视图顶部的“开始”按钮。 如果测试运行时间过长,可单击视图顶部的停止按钮以取消测试。

    “测试”视图的屏幕截图,其中“运行测试”按钮(用于运行所有测试)以深橙色框出。

  3. 这些图标显示测试是通过还是失败。 如果失败,请单击“测试结果”中的测试以显示预期输出与实际输出之间的差异。

    以下是显示测试的预期输出和实际输出之间的差异的“测试结果”视图的屏幕截图。

  4. 比较结果。 如果要使用实际输出更新测试,请在“测试”视图中右键单击测试,然后单击接受测试输出

监视查询的性能

要在大型数据库上运行查询,或者作为持续集成系统的一部分运行查询,查询性能非常重要。

如果要检查查询性能,请启用“运行查询:调试”设置以包括计时和元组计数。 然后,这将显示在“输出”视图的“查询服务器”选项卡中的日志 CodeQL 中。 元组数很有用,因为它指示查询所计算的谓词的数量。 有关更改设置的详细信息,请参阅 自定义设置

计算查询时,查询服务器会缓存其计算的谓词。 因此,如果要比较两个评估的性能,则应运行 CodeQL:清除缓存 以在每次运行之前清除查询服务器的缓存。 这样可以确保正在比较相同的数据。

关于监控CodeQL查询性能的更多信息,请参阅CodeQL文档中的查询性能疑难解答QL 程序评估