【问题标题】:Why does cassini start when I run a unittest in VS2008?为什么我在 VS2008 中运行单元测试时 cassini 会启动?
【发布时间】:2009-07-24 12:33:53
【问题描述】:

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

但是当我运行测试时,cassini 启动了。

如何避免卡西尼负载?

谢谢

【问题讨论】:

  • 已在此处解决:stackoverflow.com/questions/533412/… 在解决方案资源管理器中选择项目,然后查看属性停靠栏 (F4) 并将“调试时始终启动”更改为“false”。

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


【解决方案1】:

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

【讨论】:

  • @JorgeF 如果您的问题现在已经解决,您能否将其标记为答案
【解决方案2】:

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

【讨论】:

  • 当我尝试在没有调试的情况下运行测试(来自 VS)时,Cassini 启动。
  • 如果您有一个 ASP.NET Web 应用程序项目并且您已将其(在“Web”选项卡上)配置为“使用 Visual Studio 开发服务器”,它将在您运行项目时启动 Cassini。运行调试版本还是发布版本都没有关系。您必须决定开始什么而不是 Cassini,可能是控制台应用程序,或者使用内置或 NUnit 之类的测试框架。
【解决方案3】:

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

【讨论】:

  • 我现在不知道为什么,但它在两种模式下都启动(带调试和不带调试)
  • 您可能已将多个项目标记为启动项目,和/或 Web 项目的运行模式被标记为调试而不是活动。它也可能是其中一个项目的构建事件。
【解决方案4】:

您的控制器确实需要 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()...

在没有卡西尼的情况下运行:)

【讨论】:

  • 我不想用IIS,我只需要在没有web环境的情况下测试类。
  • 我不确定为什么这会导致 Cassini 启动。这是单元测试还是自动化测试?也许您可以发布一些测试代码,也可能发布一些目标代码。另外,如果是单元测试,是nunit还是microsoft?
  • 刚试过,如果没有帮助请告诉我,如果有帮助,请投票作为答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-20
  • 2016-12-02
相关资源
最近更新 更多