【问题标题】:Visual Studio Selenium Test Starting Local ProjectVisual Studio Selenium 测试启动本地项目
【发布时间】:2017-01-31 17:16:25
【问题描述】:

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

  1. 静态网页项目
  2. 硒测试项目

这是我的测试文件:

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 并且不知道要导入什么库。所以我有点卡在这里。

知道如何让它工作吗?

【问题讨论】:

  • 听起来你需要使用某种构建工具在触发测试时启动你的项目。或者您可以在运行测试之前手动启动您的应用程序。此外,您似乎只在AssemblyInitialize 中启动了一次驱动程序,但您在TestCleanup 中的每次测试后都退出了它
  • @mrfreester 我尝试这样做,我启动了项目然后尝试运行测试用例,但它不允许我这样做。该选项只是灰显。
  • 可以开两个VS实例吗?一个运行你的项目,一个运行你的测试?
  • @mrfreester 是的,这行得通,但必须有一种方法可以在单个 VS 实例中做到这一点,对吧?
  • 我想如果你右键单击Solutions Explorer 中的项目,转到Debug > start new instance,它会做你想做的事。我不确定当您尝试在没有其他工具的情况下在 VS 中运行测试时是否有一种方法可以自动启动应用程序,但这将是一个不错的功能。

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


【解决方案1】:

为了解决问题,需要同时运行两个项目,正如mrfreester在cmets中指出的那样:

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

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

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

【讨论】:

    猜你喜欢
    • 2013-09-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 2010-12-20
    • 2022-06-13
    相关资源
    最近更新 更多