非 .NET 应用程序的测试问题及解决方案
1. 非 .NET 应用测试的挑战
在测试非 Microsoft Visual Studio .NET 开发的软件时,使用 AutomatedGUITest 工具会遇到一些问题。该工具在将基于 COM 的应用程序转换为托管程序集后可以对其进行测试,但对于其他非 .NET 应用程序,它们定义了特定于平台和 CPU 的唯一入口点方法,如 WinMain(),这与 .NET 应用程序不同。.NET 二进制文件包含使用 Microsoft 中间语言(MSIL 或 IL)构建的代码,它是与平台和 CPU 无关的,在运行时通过即时编译器(JIT)将内部 IL 编译为特定于平台和 CPU 的指令。而 AutomatedGUITest 工具无法使用之前章节开发的代码对传统应用程序进行测试。
2. 中间语言(MSIL)
2.1 MSIL 概述
当编译为托管代码时,编译器将源代码转换为 Microsoft 中间语言(MSIL),这是一组独立于 CPU 的指令,可以高效地转换为本机代码。MSIL 包括用于加载、存储、初始化和调用对象方法的指令,以及算术和逻辑运算、控制流、直接内存访问、异常处理等操作的指令。在代码执行之前,MSIL 必须由即时编译器(JIT)转换为特定于 CPU 的代码。由于公共语言运行时为其支持的计算机体系结构提供了一个或多个 JIT 编译器,因此同一组 MSIL 可以在任何受支持的体系结构上进行 JIT 编译和执行。
2.2 元数据
当编译器生成 MSIL 时,它还会生成元数据。元数据描述了代码中的类型,包括每个类型的定义、每个类型成员的签名、代码引用的成员以及运行时
超级会员免费看
订阅专栏 解锁全文

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



