C# Can';t使用web应用程序中的Telerik测试框架

C# Can';t使用web应用程序中的Telerik测试框架,c#,browser,web-applications,console,C#,Browser,Web Applications,Console,我最近开始摆弄Telerik测试框架() 我用它来设置自动浏览器测试。 起初,我在VisualStudio的经典测试项目中使用了它们,一切都很好 接下来,我希望能够在VisualStudio之外使用自动浏览器。所以我创建了一个控制台应用程序,在那里我使用了自动浏览器的框架,一切都很好 接下来,我想创建一个MVC项目,在这个项目中,我使用了自动化浏览器的框架,但一切都停止了工作 由于某种原因,当从web应用程序调用自动浏览器时,所选浏览器似乎无法启动 自动浏览器启动时的实际代码与web应用程序和控

我最近开始摆弄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。