2

我正在尝试测试一个不需要在 asp.net 环境中运行的类(控制器)。

但是当我运行测试时,卡西尼启动了。

如何避免卡西尼负载?

谢谢

4

4 回答 4

1

问题是代码覆盖率。我已经禁用它,现在卡西尼不再启动(没有调试)。

于 2009-07-27T13:46:03.710 回答
0

您的控制器确实需要 asp.net 环境,它是您请求的处理程序。您可以将 IDE 设置为使用 IIS。单击项目的属性页面,然后在 Web 选项卡上,您将看到一个使用 IIS 单选按钮,您可以使用该按钮设置虚拟目录。然后没有更多的卡西尼。

如果您在 Visual Studio 中使用了创建单元测试功能,那么它将进行这样的测试

[TestMethod()]
[HostType("ASP.NET")]
[AspNetDevelopmentServerHost("C:\\working\\MDTest\\MvcApplication1", "/")]
[UrlToTest("http://localhost:1169/")]
public void AccountControllerConstructorTest()
{
   //Implementation
}

UrlToTest 属性是导致 cassini 启动的原因。如上所述,您的控制器确实需要 asp.net 环境,因为它是一个 http 处理程序,因此需要使用 http 调用它才能对其进行测试。如果您只是不喜欢 cassini(很公平),那么您仍然需要 IIS 才能使其正常工作。

如果您右键单击您的 Web 项目,然后按照本文顶部的说明进行操作,“创建单元测试”功能将生成此

[TestMethod()]
[HostType("ASP.NET")]
[UrlToTest("http://localhost/MvcApplication1")]
public void AccountControllerConstructorTest()...

没有卡西尼运行:)

于 2009-07-24T12:38:03.433 回答
0

Cassini 应该只在您调试或运行项目时运行(即按F5Ctrl-F5),而不是在您执行单元测试时运行。您可以通过查看 ASP.NET 项目的属性并选择Web选项卡来修改按F5时发生的情况。您尚未指定如何执行测试,但 Visual Studio 单元测试框架和 NUnit 等框架都将在不是 Cassini 的单独进程中运行您的测试。如果您改为使用自己的控制台应用程序项目来执行测试,则应确保已将此项目设置为StartUp项目。然后按F5将执行您的测试控制台应用程序,而不是 Cassini。

于 2009-07-24T12:56:54.360 回答
0

如果您在调试模式下运行测试,cassini 将启动。如果您在没有调试模式的情况下运行测试,那么它不会。

于 2009-07-24T13:19:12.560 回答