非 .NET 应用程序的测试问题
1. 测试背景与目标
在软件测试中,若要对非 Microsoft Visual Studio .NET 开发的软件进行测试,使用 AutomatedGUITest 工具时会遇到一些问题。该工具能在将基于 COM 的应用程序转换为托管程序集后对其进行测试,但对于其他非 .NET 应用程序,由于它们定义了特定于平台和 CPU 的唯一入口点方法(如 WinMain()),而 .NET EXE 二进制文件虽也有 WinMain() 或 Main() 作为入口点,但背后逻辑不同。.NET 二进制文件包含使用 Microsoft Intermediate Language (MSIL 或 IL) 构建的代码,它独立于平台和 CPU,在运行时通过即时编译器 (JIT) 转换为特定于平台和 CPU 的指令。因此,之前章节开发的代码无法让 AutomatedGUITest 工具对传统应用程序进行测试。本文的目标是为 AutomatedGUITest 项目添加一些代码,使其能够对传统应用程序进行 GUI 对象查找和测试,并以 Notepad.exe 应用程序为例进行演示。
2. 中间语言(MSIL)
2.1 MSIL 概述
在编译为托管代码时,编译器会将源代码转换为 Microsoft Intermediate Language (MSIL),这是一组独立于 CPU 的指令集,可高效转换为本地代码。MSIL 包含用于加载、存储、初始化和调用对象方法的指令,以及用于算术和逻辑运算、控制流、直接内存访问、异常处理等操作的指令。在代码执行之前,MSIL 必须通过即时编译器 (JIT) 转换为特定于 CPU 的代码。由于公共语言运行时为其支持的计
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



