You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无CMake环境能否在Microsoft Visual Studio中使用FyTest?

VS2010 原生集成FyTest方案

完全可以脱离CMake,通过Visual Studio 2010原生的项目配置完整实现FyTest的构建、自动测试运行能力,不需要走内部软件审批流程。FyTest本身的核心逻辑是「测试代码预处理器+Fortran静态模块库」,CMake承担的流程全部可以通过VS自带的自定义生成步骤、生成事件、项目引用机制替代。

基础项目配置

  • 直接在现有.sln解决方案下新增两个独立项目,不要改动原有遗留业务代码的项目配置,避免影响生产构建:
    • 第一个是静态库项目,用来编译FyTest的核心Fortran模块,编译选项(运行库类型、目标架构、Fortran语言标准、预处理器宏)必须和你现有业务代码的配置完全一致,否则会出现链接错误
    • 第二个是控制台应用项目作为测试执行入口,添加对上述FyTest静态库、待测试业务代码项目的引用
  • FyTest的源码直接放在你本地代码仓库的第三方依赖目录即可,不需要全局安装,也不会写入系统注册表,符合常规企业开发环境管控要求。

配置FyTest测试代码预处理流程

FyTest的.fypp格式测试文件不能直接被Fortran编译器识别,需要先通过自带的预处理器转成标准Fortran代码,这一步可以通过VS的自定义生成规则实现:

  • 选中所有.fypp后缀的测试文件,右键打开属性页,配置选择「所有配置、所有平台」
  • 找到「自定义生成步骤」配置项,按以下内容填写:
    • 命令行:python <你的FyTest存放路径>/fytest.py process %(FullPath) -o %(IntDir)%(Filename).f90,如果你用的是打包好的单文件版FyTest预处理器,把前面的python和脚本路径替换成预处理器exe的本地路径即可;如果是处理固定格式的老旧Fortran代码,追加--fixed-form参数
    • 输出:%(IntDir)%(Filename).f90
    • 附加依赖项:填写当前.fypp文件引用的其他测试模块、业务模块路径,保证依赖文件修改时能自动触发重编译
  • 将预处理器输出到中间目录的.f90文件加入测试控制台项目的编译列表即可。

配置自动运行测试

不需要依赖CTest,通过VS的生成后事件就能实现构建完成自动运行全部测试、失败阻断构建的效果:

  • 打开测试控制台项目的属性页,找到「生成事件-生成后事件」
  • 命令行填入:$(TargetPath) --output=$(OutDir)test_result.xml
  • FyTest执行完成后,如果存在失败用例会返回非0退出码,VS默认会将返回非0值的生成后事件判定为构建失败,直接在输出窗口打印错误信息,拦住有问题的代码提交。如果需要更直观的结果展示,可以加几行简单的批处理命令解析生成的xml结果,把失败用例的断言信息打印到输出窗口,不需要安装额外插件。

适配老旧代码的注意事项

  • 如果你用的是VS2010搭配Intel Visual Fortran Composer老版本,三个项目(业务代码、FyTest静态库、测试控制台)的Fortran运行库选项必须完全统一:比如多线程调试DLL、多线程静态库这类选项不能混用,否则会出现链接失败、运行时崩溃的问题
  • 不需要把原有固定格式(.f后缀)的老旧代码转成自由格式,FyTest预处理器原生支持固定格式源码的测试编写
  • 这套配置和CMake驱动的FyTest流程效果完全一致:修改测试或业务代码后会自动增量编译,构建完成自动跑全量用例,用例失败直接中断构建,没有功能差异。

内容的提问来源于stack exchange,提问作者lsoranco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:39:19