关于在 VS Code
中测试查询
要确保 CodeQL 查询生成预期结果,可以运行测试,将预期查询结果与实际结果进行比较。
CodeQL 扩展名会自动注册到“测试”视图中。 此视图显示在当前工作区中找到的所有测试,并提供用于在工作区中浏览和运行测试的 UI。
有关创建 CodeQL 测试的详细信息,请参阅“测试自定义查询”。
要查看运行单元测试的更详细输出,请打开 CodeQL 测试日志。 如需相关信息,请参阅“访问日志”。
测试查询结果
-
在 Visual Studio Code 中,打开边栏中的“测试”视图。
-
要运行特定测试,请将鼠标悬停在文件或文件夹名称上,然后单击“开始”按钮。 要在工作区中运行所有测试,请单击视图顶部的“开始”按钮。 如果测试运行时间过长,可单击视图顶部的停止按钮以取消测试。
-
这些图标显示测试是通过还是失败。 如果失败,请单击“测试结果”中的测试以显示预期输出与实际输出之间的差异。
-
比较结果。 如果要使用实际输出更新测试,请在“测试”视图中右键单击测试,然后单击接受测试输出。
监视查询的性能
要在大型数据库上运行查询,或者作为持续集成系统的一部分运行查询,查询性能非常重要。
如果要检查查询性能,请启用“运行查询:调试”设置以包括计时和元组计数。 然后,这将显示在“输出”视图的 “查询服务器”选项卡中的日志中。 元组计数非常有用,因为它指示查询计算的谓词的大小。 有关更改设置的详细信息,请参阅“自定义设置”。
计算查询时,查询服务器会缓存其计算的谓词。 因此,当您想要比较两个评估的性能时,应在每次运行之前运行 CodeQL:清除 Cache 以清除查询服务器的缓存。 这样可以确保正在比较相同的数据。
有关监视 CodeQL 查询性能的详细信息,请参阅 CodeQL 文档中的“查询性能疑难解答”和“QL 程序评估”。
后续步骤
确定查询找到要标识的结果时,可使用变体分析来大规模运行。 有关跨多个 数据库大规模运行分析的信息,请参阅“通过多库变体分析大规模运行 CodeQL 查询”。