为什么我在VS2008中运行单元测试时会启动cassini?

时间:2009-07-24 12:33:54

标签: visual-studio-2008 unit-testing cassini

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

但是当我进行测试时,cassini开始了。

如何避免卡西尼负荷?

由于

4 个答案:

答案 0 :(得分:1)

问题在于代码覆盖率。我已禁用它,现在cassini不再启动(没有调试)。

答案 1 :(得分:0)

您的控制器确实需要asp.net环境,它是您的请求的处理程序。您可以将IDE设置为使用IIS。单击项目的属性页面,在Web选项卡上,您将看到一个Use 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()...

哪个没有cassini运行:)

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

相关问题