当前位置: 首页 > 面试题库 >

我可以在同一解决方案中使用单元测试项目中的Selenium测试ASP.NET MVC Web项目吗?

盖成弘
2023-03-14
问题内容

我有一个ASP.NET MVC 5 Web项目,并且我有一个基于MsTest的单元测试项目,该项目使用Selenium进行一些自动化的“浏览器”测试。

当前,我必须运行Web项目(在本地IIS
Express中),然后针对该项目运行测试,但这有各种限制。例如,我只能“运行”测试,而不能“调试”它们。显然,这与我的持续集成流程并不合适。

没有办法让测试启动网站实例吗?(我知道ASP.NET MVC 6可以是自托管的,因此可能会打开一些可能性,但是该项目将停留在MVC 5上)。


问题答案:

好的,这是一种方法:

  1. 旋转了一个网络服务器中饰有方法的[AssemblyInitialize]属性(此方法必须是在一个类中装饰着你的测试项目[TestClass]属性)。
        [AssemblyInitialize]
    public Initialize()
    {
        ...
    }
  1. 使用该[AssemblyCleanup]属性装饰的方法停止Web服务器。
        [AssemblyCleanup]
    public Cleanup()
    {
        ...
    }

要启动IIS
Express,您可以仅Process.Start在IISExpress.exe上使用,并传入pathport参数。(要停止它,您可以简单地终止您开始的进程)。有关示例,请参见Fran的答案中的链接。

path参数应指向包含您的网站项目的文件夹(项目文件夹,而不是bin文件夹)。

port参数必须是当你在本地运行的网站上使用相同的本地端口号(所以如果在浏览器窗口中的网址是HTTP://本地主机:57941,那么你需要的端口号为57941)。



 类似资料:
  • 问题内容: 我正在尝试为我的项目编写一个单元测试,但是它不允许我使用配置管理器。现在我的项目像 ASP.Net应用程序(所有aspx页) ProjectCore(所有C#文件-模型) ProjectTest(所有测试) 在我的ProjectCore中,我可以从System.Configuration访问ConfigurationManager对象,并将信息传递到项目中。但是,当我运行涉及Confi

  • 尝试设置远程代码欺骗单元测试在PhpStorm中的Yii2项目。 使用SSH,我可以登录到服务器,转到我的Yii2项目的根目录并运行:

  • 当我构建我的解决方案(包括一个单元测试项目)时,我收到了这个错误。 此项目引用了此计算机上缺少的NuGet包。使用NuGet Package Restore下载它们。有关详细信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105.缺少的文件是..\packages\MSTest.TestAdapter.1.1.11\build\net45\MSTes

  • 测试 Android Library 项目类似于测试应用项目。唯一的不同点在于整个库(包括它的依赖)都是自动作为依赖库被添加到测试应用中。结果就是测试 APK 不单只包含自身的代码,还包含了 Library 项目以及它依赖的代码。Library 的 manifest 被组合到测试应用的 manifest 中(引用这个 Library 的项目作为容器)。androidTest task 变为只执行安

  • 我正在为一个Android库设置单元测试代码覆盖率,该库使用Robolectric运行测试,并使用PowerMock/Mockito进行模拟测试。 但是,使用Cobertura运行单元测试会导致以下异常... *即使用PowerMock注释测试,删除注释、和调用。 我看到一些用户通过在他们的测试套件中设置来修复类似的问题。 但是,这不是解决方案,因为我使用的是Gradle,它在Java项目上默认为