【问题标题】:Executing c# Unit Tests with Jenkins使用 Jenkins 执行 c# 单元测试
【发布时间】:2017-07-06 18:45:50
【问题描述】:

我正在通过 Windows Jenkins 运行 c# 单元测试,并且在执行测试时控制台输出窗口对所有测试显示相同的错误:

错误信息: 测试方法 Levan_Test 抛出异常: System.ComponentModel.Win32Exception:访问被拒绝 堆栈跟踪: 在 System.Windows.Forms.SendKeys.SendInput(字节 [] oldKeyboardState,队列 previousEvents) 在 System.Windows.Forms.SendKeys.Send(字符串键,控制控件,布尔等待) 在 System.Windows.Forms.SendKeys.SendWait(字符串键)

权限或power shell命令执行似乎有问题。

代码sn-p:

Thread.Sleep(1000);
driver.FindElement(By.XPath("//*[@id=\"solutionsDropdown\"]/div/i")).Click();
Thread.Sleep(1000);
driver.FindElement(By.XPath("//*[@id=\"solutionsDropdown\"]/ul/li[2]/a")).Click();
Thread.Sleep(1000);
SendKeys.SendWait("{Enter}");

【问题讨论】:

  • 是的,这就是它的样子。任何额外的线索,比如可能需要查看的代码?
  • 我在 Google 上找到了很多关于此的建议。看起来你不是唯一一个遇到这个问题的人。特别是:stackoverflow.com/questions/42501443/…
  • 我添加了代码
  • 您看过其他 Stack Overflow 文章了吗?您的问题相当不起眼;您在目标计算机上使用的帐户没有必要的权限。
  • 我尝试以管理员身份而不是本地系统运行 Jenkins 服务,但它根本没有启动该服务。

标签: c# unit-testing powershell selenium jenkins


【解决方案1】:

经过大量研究,我发现:如果您将 Jenkins 作为服务运行,它无法执行与桌面交互的操作,例如 Windows 窗体应用程序。您可能希望使用 JNLP 在桌面上运行构建代理作为运行这些测试的普通用户。

【讨论】:

    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 2023-03-11
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多