【发布时间】:2017-01-31 17:16:25
【问题描述】:
我有一个包含 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