C# Can';t使用web应用程序中的Telerik测试框架
我最近开始摆弄Telerik测试框架() 我用它来设置自动浏览器测试。 起初,我在VisualStudio的经典测试项目中使用了它们,一切都很好 接下来,我希望能够在VisualStudio之外使用自动浏览器。所以我创建了一个控制台应用程序,在那里我使用了自动浏览器的框架,一切都很好 接下来,我想创建一个MVC项目,在这个项目中,我使用了自动化浏览器的框架,但一切都停止了工作 由于某种原因,当从web应用程序调用自动浏览器时,所选浏览器似乎无法启动 自动浏览器启动时的实际代码与web应用程序和控制台应用程序相同。只是不同的起点 我也没有收到任何关于浏览器没有启动的错误,我只是在我想启动浏览器后,从框架中得到一个超时异常 控制台代码:C# Can';t使用web应用程序中的Telerik测试框架,c#,browser,web-applications,console,C#,Browser,Web Applications,Console,我最近开始摆弄Telerik测试框架() 我用它来设置自动浏览器测试。 起初,我在VisualStudio的经典测试项目中使用了它们,一切都很好 接下来,我希望能够在VisualStudio之外使用自动浏览器。所以我创建了一个控制台应用程序,在那里我使用了自动浏览器的框架,一切都很好 接下来,我想创建一个MVC项目,在这个项目中,我使用了自动化浏览器的框架,但一切都停止了工作 由于某种原因,当从web应用程序调用自动浏览器时,所选浏览器似乎无法启动 自动浏览器启动时的实际代码与web应用程序和控
namespace AutomatedTests
{
class Program
{
static void Main(string[] args)
{
var telerik = new TelerikTests();
telerik.TestLanguageCoockie();
}
}
}
Web应用程序代码:
namespace AutomatedTests.Controllers
{
public class BrowserTestController : Controller
{
public ActionResult Index()
{
var telerikTests = new TelerikTests();
telerikTests.TestLanguageCoockie();
}
}
}
电传测试代码:
namespace AutomatedTests.Tests
{
[TestClass]
public class TelerikTests : BaseTest
{
private static Settings settings;
public TelerikTests()
{
Init();
}
private Manager createMyManager
{
get
{
return new Manager(settings); // = ArtOfTest.WebAii.Core.Manager
}
}
public void Init()
{
// Get basic settings.
settings = GetSettings(); // = BaseTest.GetSettings();
// Custumize away!
settings.Web.DefaultBrowser = BrowserType.Chrome;
settings.Web.KillBrowserProcessOnClose = true;
}
[TestMethod]
public void TestLanguageCoockie()
{
var myManager = createMyManager;
myManager.Start();
myManager.LaunchNewBrowser();
// More code to perform the actual test, but with the web app approach we never get past this. The browser doesn't start and a time out exception is thrown.
}
}
}
编辑:事实证明,除了IE之外,我的每个浏览器都有这个问题。但我确实需要它在其他浏览器上工作。我最终设置了一个控制台项目+一个web应用程序。web应用程序与控制台应用程序联系,以便它可以执行所有自动浏览器任务。稍后,它会将信息发送回web应用程序,以便将其发送回客户端。我无法想象您为什么要这样做,但该网站是在本地运行还是在远程服务器上运行?浏览器自动化需要一个交互式会话。我已在本地计算机和服务器上设置了该会话。这两种情况下的结果相同。我这样做的原因是设置预定义的自动浏览器测试,人们可以从web界面访问。另外:我不认为我在技术上完全理解你对交互式会话的意思。在另一个项目中引用测试是很奇怪的。我不知道为什么它不能在本地工作,但除非有人登录到未锁定的桌面,否则它永远不会在服务器上工作。所以你是说,必须有一个(专用)帐户登录到服务器才能使用“交互式会话”打开浏览器?我也做了同样的假设。我把它倒进了控制器ActionResult中,它就这样起作用了。当然,我是直接引用TTF,而不是通过MS测试dll。