关于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
相关产品推荐
相关产品推荐

