选择检测文件夹
如果您希望在测试程序集中的代码时收集代码覆盖率数据,Visual Studio 必须先检测该程序集。 在检测过程中,会向该程序集添加用来生成代码覆盖率数据的代码。
您可以决定在哪个文件夹中检测程序集。 Visual Studio 可在以下两个位置之一检测程序集:
就地。 如果您选择就地检测,Visual Studio 会在您运行测试之前在该程序集所在的文件夹中检测该程序集。 如果该程序集是您所创建的应用程序的一部分,则该文件夹就是 Visual Studio 用来生成该程序集的文件夹。
在部署文件夹中。 如果您未选择就地检测,则 Visual Studio 会在部署文件夹中检测程序集。 部署文件夹是专门为测试运行而创建的。 有关如何配置测试部署的更多信息,请参见如何:配置测试部署。
确定检测文件夹
选择就地检测还是选择在部署文件夹中检测,具体取决于您对该程序集具有的访问级别以及该程序集的类型。
具有有限可用性的程序集。 在下表中,处于下面的一个或多个状态的任何程序集都被称为具有有限可用性的程序集:
该程序集在多个人之间共享。 共享程序集的问题是多个用户之间可能产生冲突。 例如,如果两个用户同时开始运行测试,并同时从同一个程序集中请求代码覆盖率数据,就会出现这样的问题。
该程序集位于网络共享(而非本地计算机)上。
您对该程序集具有的是只读访问权限。
具有固定加载位置的程序集。 对于某些程序集,测试执行引擎只能从特定位置加载。 在下表中,这样的程序集被称作具有固定加载位置的程序集。 这包括下列类型的文件:
COM 组件
控制面板页面
下表可指导您选择正确的检测文件夹。 至于具有特殊考虑因素的情况,请参见其他说明列。
程序集的加载位置 |
程序集的可用性 |
在该文件夹中检测 |
其他说明 |
fixed |
不受限制 |
就地 |
(无) |
不固定 |
受限制 |
在部署文件夹中 |
(无) |
不固定 |
不受限制 |
两个文件夹均可,但建议您选择“在部署文件夹中”。 |
在选择就地检测之后,如果您在测试运行过程中重新生成经过检测的程序集,则测试引擎会检测到重新生成的程序集较新,因此不会还原该文件在检测之前的版本,而且会生成一个运行级别的警告。 |
fixed |
受限制 |
就地,但是请参见“其他说明” |
如果您不选择就地检测,将不会检测固定位置中的任何程序集。 这意味着,尽管测试执行能够成功而且不会生成运行级别的警告,但不会收集代码覆盖率数据。 |
指定检测文件夹
您可以通过以下两种方法来选择就地检测还是在部署文件夹中检测:
要使您选择的选项成为默认设置,请转到 Visual Studio 的**“工具”菜单上的“选项”对话框。 要找到此设置,请在“测试执行”页上的“测试工具”**节点下查找。
在为代码覆盖率配置诊断数据适配器时,还可以为测试设置指定检测文件夹。 有关更多信息,请参见如何:使用自动测试的测试设置配置代码覆盖率。
位置固定、可用性受限的程序集
若要修改要就地检测的程序集,必须满足以下条件:
该程序集文件不得设置只读特性。 如果您对该文件具有足够的权限,可以更正此设置。
运行测试的用户必须具有修改程序集所需的特权。 由于检测是由主机应用程序执行的,因此,无论是在本地执行还是远程执行,需要这些特权的帐户就是用来执行 devenv.exe 或 MSTest.exe 的帐户。 此帐户属于下列用户:运行 Visual Studio 的用户、执行过 MSTest.exe 命令的用户或者启动生成(而该生成正在运行测试)的用户。
该程序集文件不得由另一个程序使用或锁定。 要更正此问题,您必须要么结束锁定该二进制文件的程序,要么等待它完成。
如果测试引擎仍无法检测一个或多个程序集,则会生成一个运行级别的警告。
请参见
任务
创建测试设置以从 Visual Studio 中运行自动测试