ASP.NET 单元测试概述

更新:2007 年 11 月

使用 ASP.NET 单元测试可对 ASP.NET 站点或项目中的方法进行测试。例如,可以对组成 ASP.NET 项目业务逻辑的方法进行测试。

说明:

如果您运行的是 Windows Vista,必须以管理员身份运行 Visual Studio 才能运行 ASP.NET 单元测试。如果您作为一般用户运行 Visual Studio,虽然可以创建网站测试并且可以创建和运行 ASP.NET 测试,但这些测试将失败。若要以管理员身份运行 Visual Studio,请右击 Microsoft Visual Studio 2005,再单击“以管理员身份运行”。如果系统提示您选择是继续还是允许进程运行,请分别单击“继续”或“允许”。如果系统提示您提供具有管理员权限的用户登录凭据,必须提供这些凭据才能成功运行 ASP.NET 单元测试。有关 Windows Vista 中的安全性的更多信息,请参见 User Account Control Overview(用户帐户控制概述)。

ASP.NET 单元测试和其他单元测试的不同之处在于在其中运行测试的进程。ASP.NET 测试在将运行生产代码的相同环境中运行。为此,可以选择 IIS,也可以选择 ASP.NET Development Server。当在 Web 服务器进程中运行测试时,可以访问与该进程关联的所有环境,如 Page 对象。

创建 ASP.NET 单元测试的方法有两种:通过生成;通过配置现有单元测试使其作为 ASP.NET 单元测试运行。在 如何:创建 ASP.NET 单元测试 中对这两种方法进行了描述。

还可以在运行配置中指定将用于运行的单元测试的设置。只有该运行配置活动时才能使用这些设置。有关更多信息,请参见如何:创建 ASP.NET 单元测试

在运行 ASP.NET 单元测试时使用另一进程标识

测试 ASP.NET 代码时,测试代码要么运行在 IIS 进程中,要么运行在 ASP.NET Development Server 进程中。如果 ASP.NET 单元测试在 IIS 进程中运行,为安全起见,您可以选择让 ASP.NET 进程以“非默认用户”身份运行,即以另一进程标识运行。

例如,如果 ASP.NET 网站必须访问计算机上的文件夹、文件或数据库等资源,则可以选择以对这些资源具有恰如其分、不多不少的权限的进程标识来运行 ASP.NET 进程。

说明:

默认的标识取决于 IIS 的版本。例如,在 Windows Server 2003 中,ASP.NET 进程 w3wp.exe 的默认标识为“NETWORK SERVICE”。

在这种情况下单元测试执行可能会失败。例如,以非默认用户身份运行的 ASP.NET 进程可能只有有限的权限,但仍可能尝试在 %WINDIR%\Temp 文件夹中生成临时文件。如果 %WINDIR%\Temp 上的默认权限使该进程无法生成这些文件,则生成操作就会失败。在这种情况下,为了使单元测试执行能够成功,您必须使该进程对 %WINDIR%\Temp 文件夹拥有更高的权限。

如果服务帐户不能访问部署根文件夹,则单元测试执行也可能会失败。如果发生这种情况,Visual Studio 将显示一个对话框,以解释错误并使您可以通过单击“确定”来忽略该错误。

请参见

任务

如何:创建 ASP.NET 单元测试

如何:指定测试运行配置

如何:在 ASP.NET 解决方案中运行测试时进行调试

概念

测试部署概述

ASP.NET 单元测试和专用访问器

其他资源

创建单元测试