Visual Studio Selenium测试启动本地项目

时间:2017-01-31 17:16:25

标签: c# visual-studio unit-testing selenium visual-studio-2015

我有一个包含2个项目的解决方案。

  1. 静态网页项目
  2. 硒测试项目
  3. 这是我的测试文件:

    using OpenQA.Selenium;
    using OpenQA.Selenium.Chrome;
    using System;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    
    namespace SeleniuumTestSuite
    {
        [TestClass]
        public class HomePageTest
        {
            private string baseURL = "http://localhost:56403/";
            private static IWebDriver driver;
    
            [AssemblyInitialize]
            public static void SetUp(TestContext context)
            {
                driver = new ChromeDriver();
            }
    
            [TestMethod]
            public void RemoteSelenium()
            {
                driver.Manage().Window.Maximize();
                driver.Navigate().GoToUrl(this.baseURL);
            }
    
            [TestCleanup]
            public void Finally()
            {
                driver.Quit();
    
            }
        }
    }
    

    我需要在测试用例运行之前启动localhost项目,以便导航到localhost不会产生404.我发现this post似乎回答了这个问题,但我不知道是哪个库解决方案正在使用。

    我尝试使用NuGet下载Microsoft.AspNet.WebApi.WebHost,但如果我尝试private Server _webServer = new Server(Port, VirtualPath, SourcePath.FullName);,则VS无法识别Server并且不知道要导入哪个库。所以我有点被困在这里。

    知道如何让它发挥作用吗?

1 个答案:

答案 0 :(得分:1)

为了解决该问题,有必要同时运行两个项目,正如mrfreester在评论中指出的那样:

  • 主项目,以便能够运行主应用程序。
  • 将访问正在运行的主应用程序以对其进行测试的测试项目。

如mrfreester所建议,您可以使用两个Visual Studio实例,它将起作用。但是,要增强此解决方案并仅在一个Visual Studio实例中管理所有内容,您可以使用Debug.StartWithoutDebugging(默认键盘快捷键为ctrl + f5)运行主项目。这将为应用程序有效地运行服务器,而无需启动VS调试模式,从而允许您(和您的测试项目)正常使用该应用程序。即使关闭浏览器,该应用程序也将运行。

请注意:如果您正常启动应用程序调试,则当您停止执行时,服务器将停止,并且您必须重新启动而不进行调试才能再次通过测试。