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

关于LeanFT测试UFT自带Flight GUI WPF应用中FlightGuiSampleWpfApp的疑问

解决LeanFT示例中FlightGuiSampleWpfApp找不到定义的问题

我之前也碰到过这个问题,当时折腾了好一会儿才搞明白——这个FlightGuiSampleWpfApp其实是MicroFocus LeanFT为Flight示例应用专门做的辅助工具类,核心作用就是帮你自动启动HPE MyFlight应用,并且在测试结束后自动关闭它,省得你手动写启动关闭的逻辑。

给你几个可行的解决办法:

  • 检查完整的LeanFT示例项目
    这个类一般藏在官方示例项目的辅助代码文件夹里,比如叫Helpers或者SampleAppHelpers之类的。如果你只是复制了单段测试代码,肯定找不到它——得把整个示例项目拉下来,配套的辅助类都包含进去才行。LeanFT的安装目录或者官方提供的示例包里面应该有完整的项目结构。

  • 自己写个简化版的替代类
    要是找不到官方的类也没关系,自己写一个很简单。核心就是封装启动和关闭应用的逻辑,参考代码如下:

    public class FlightGuiSampleWpfApp : IDisposable
    {
        private Process _flightAppProcess;
        // 这里换成你自己的Flight WPF应用安装路径
        private readonly string _flightAppPath = @"C:\Program Files (x86)\Micro Focus\Unified Functional Testing\samples\flight\WPF\FlightWPF.exe";
    
        public FlightGuiSampleWpfApp()
        {
            // 启动应用
            _flightAppProcess = Process.Start(_flightAppPath);
            // 等几秒让应用完全加载,时间可以根据实际情况调整
            Thread.Sleep(3000);
        }
    
        public void Dispose()
        {
            // 测试结束后关闭应用,避免残留进程
            if (_flightAppProcess != null && !_flightAppProcess.HasExited)
            {
                _flightAppProcess.CloseMainWindow();
                // 等5秒还没关就强制杀掉
                if (!_flightAppProcess.WaitForExit(5000))
                {
                    _flightAppProcess.Kill();
                }
                _flightAppProcess.Dispose();
            }
        }
    }
    

    记得把_flightAppPath改成你本地UFT安装对应的Flight WPF程序路径,别直接抄我的。

  • 直接在测试代码里手动处理启动关闭
    要是觉得写类麻烦,也可以直接在测试方法里搞定:

    [Test]
    public void MyFlightAppTest()
    {
        Process flightProcess = null;
        try
        {
            // 启动Flight应用
            flightProcess = Process.Start(@"C:\Program Files (x86)\Micro Focus\Unified Functional Testing\samples\flight\WPF\FlightWPF.exe");
            Thread.Sleep(3000);
    
            // 这里写你的LeanFT测试逻辑,比如定位控件、模拟操作这些
    
        }
        finally
        {
            // 不管测试成功失败,最后都要关掉应用
            if (flightProcess != null && !flightProcess.HasExited)
            {
                flightProcess.CloseMainWindow();
                if (!flightProcess.WaitForExit(5000))
                {
                    flightProcess.Kill();
                }
                flightProcess.Dispose();
            }
        }
    }
    

额外说一句

示例里用using (new FlightGuiSampleWpfApp())这种写法,是利用了C#的IDisposable特性——只要代码块执行完,就会自动调用Dispose方法关闭应用,挺方便的,不用手动写收尾逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:30:29