- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一套用 C# 编写的 Webdriver 测试,我使用 MSTest 作为运行器。此时 NUnit 不是一个选项,所以我需要弄清楚如何让它与当前配置一起工作。对于 CI,我使用 Jenkins ver。 1.514。我无法控制正在安装什么插件或何时更新 Jenkins,如果询问这样的事情可能会导致不同团队的漫长等待和审批流程(讨厌二元论)。
所以..我有一些定义如下的 DataDriven 测试(我将粘贴其中一个)
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "UsersData.csv", "UsersData#csv", DataAccessMethod.Sequential)]
[TestMethod()]
public void Test_Login()
{
Logger.Info("");
Logger.Info("-----------------------------------------------------------------");
所以,这应该很清楚,我正在使用 UsersData.csv 文件,该文件位于我项目的 TestData 文件夹中。为了在 Jenkins 中运行这个测试,我曾经使用这个命令行
mstest /testmetadata:"%WORKSPACE%\SeleniumJenkins.vsmdi" /testlist:Jenkins /resultsfile:"%WORKSPACE%\AllTests_Jenkins.trx" /runconfig:"%WORKSPACE%\Local.testsettings" /detail:stdout
一切正常,但有一天,当我在 TRX 结果文件中遇到这个错误时:
The unit test adapter failed to connect to the data source or to read the data. For more information on troubleshooting this error, see "Troubleshooting Data-Driven Unit Tests" (http://go.microsoft.com/fwlink/?LinkId=62412) in the MSDN Library.Error details: The .Net Framework Data Providers require Microsoft Data Access Components(MDAC). Please install Microsoft Data Access Components(MDAC) version 2.6 or later.Retrieving the COM class factory for component with CLSID {2206CDB2-19C1-11D1-89E0-00C04FD7A829} failed due to the following error: 8007007e The specified module could not be found. (Exception from HRESULT: 0x8007007E).
但是如果我登录到运行从站的机器并运行相同的命令,它似乎找到了数据源文件并且 ir 运行正常。
此外,我安装了 psexec 并将命令放入 *.bat 文件中,然后我从 ps exec 中调用此文件,如下所示:
psexec \\my_IP -u "machine-name\jenkins-local" -p "password" cmd /C call "%WORKSPACE%\Selenium\msteststart.bat"
这似乎有效,但我没有登录 Jenkins,如果我将它重定向到一个文件,那么每当另一个构建开始并删除工作区时,文件就会丢失,所以我只有最后一个版本文件的一部分,我无法将它与其他版本进行比较。
local.testsettings 文件如下所示:
<?xml version="1.0" encoding="UTF-8"? >
<TestSettings name="Local" id="06505635-693a-4f31-b962-ecf8422b5eca" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>These are default test settings for a local test run.</Description>
<Deployment>
<DeploymentItem filename="Selenium\TestData\UsersData.csv" />
</Deployment>
<NamingScheme baseName="Selenium_" useDefault="false" />
<Execution>
<Timeouts testTimeout="10800000" />
<TestTypeSpecific>
<UnitTestRunConfig testTypeId="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b">
<AssemblyResolution>
<TestDirectory useLoadContext="true" />
</AssemblyResolution>
</UnitTestRunConfig>
</TestTypeSpecific>
<AgentRule name="Execution Agents">
</AgentRule>
</Execution>
</TestSettings>
如果有人能就此给我提示,我将不胜感激。谢谢
最佳答案
可能是
正如您所说,您设法使用 psexec 让它工作,解决方法是在运行作业的同一台机器上生成文件,并将生成的日志文件存档为工件。 Jenkins 会跟踪它。
如果您更喜欢尝试在控制台中输出,也许要应用控制台解析,您还可以使 psexec 命令在构建后将文件输出到控制台(通过在运行后键入它),或者使用这个类似 tee 的批处理命令来设法让 psexec 将它所做的输出到 jenkins 控制台:Using a custom Tee command for .bat file
并且不要忘记捕获标准错误!
关于c# - 为什么在使用 MSTest 时 DataDriven 测试不再在 Jenkins 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104857/
我想创建一个 Jenkins 工作来启动其他 Jenkins 工作。这很容易,因为 Jenkins 模板项目插件允许我们创建“使用另一个项目的构建器”类型的构建步骤。然而,让我的情况更难的是我必须在其
我有一个简单的Windows批处理命令(robocopy),该命令返回零错误,但在Jenkins中始终被标记为失败。我想知道为什么? D:\ Jenkins \ jobs \ Jenkins Conf
我有两个 Jenkins 工作 - Jenkins Job1 和 Jenkins Job2。 我有多个应用程序并使用相同的 Jenkins 来构建应用程序。如果相同的应用程序在 Jenkins 中运行
我找不到这两者之间的区别。这些是相同的还是不同的。 最佳答案 第一个区别是支持(正如其他人所提到的)。 CloudBees 提供企业级支持以及经过全面审查和测试的 Jenkins 版本,该版本将在各种
是否可以指定在多次触发作业(A)的情况下,将先前的作业从队列中删除,并且如果有足够的可用插槽,则仅将最新的作业留在队列中或启动? 提前致谢! 最佳答案 您可以使用通过Groovy Script Plu
我有2位Jenkins主持人,并且希望First Jenkins在第一个结果的基础上基于“SUCCESS”触发远程Jenkins上的工作。 我看过各种插件,但它们似乎都表明一个Jenkins主机,可以
我的 jenkinsfile 有几个参数,每次我更新参数(例如删除或添加新输入)并将更改提交到我的 SCM 时,我没有在 jenkins 中看到相应更新的作业输入屏幕,我必须运行执行,取消它,然后查看
有没有办法在构建完成后触发相同的工作。我有一项工作需要运行,直到我手动中止它。有没有办法做到这一点? 最佳答案 最简单的方法是添加一个构建相同项目的后期构建步骤。将“构建后操作”-“构建其他项目”-“
我在 Linux 家中的特定用户下有工作/.jenkins 文件夹。我想与另一个用户一起启动 Jenkins,但重新使用另一个用户的 .jenkins 文件夹。我怎样才能做到这一点? Jenkins
我是 Jenkins 的新手,我不确定这是否可行,但我想设置一个 Web 界面,人们可以在其中单击“开始作业”,这将告诉 Jenkins 开始特定的构建作业。 Jenkins 是否有允许此类操作的网络
如何获取 Jenkins 凭证变量,即“mysqlpassword”,可供 Jenkins 声明性管道的所有阶段访问? 下面的代码片段工作正常并打印我的凭据。 node { stage('Gett
如何获取 Jenkins 凭证变量,即“mysqlpassword”,可供 Jenkins 声明性管道的所有阶段访问? 下面的代码片段工作正常并打印我的凭据。 node { stage('Gett
如何将构建参数从一个项目传递到另一个项目? 我们在 Jenkins 用户界面中是否有任何配置,可以在完成一个构建项目后将构建参数传递给另一个项目? 我能够触发另一个项目,但无法传递构建参数。我们是否有
我正在 Jenkins 中构建一个项目,并希望在它之后立即启动测试,请稍候 直到测试完成,然后运行另一个作业来分析结果。测试系统是一个封闭的系统(我不能修改它)所以为了检查测试是否完成我需要每 X 秒
我创建了一个测试 jenkins 作业管道。此作业具有字符串参数 - 'testVar' Jenkins文件代码: println("env.TESTVAR=" + env.TESTVAR) prin
我的 Jenkins 工作“构建”配置有 3 执行 shell - 构建任务 2 构建后操作 有没有办法获取每个构建任务和构建后操作的运行时间? 最佳答案 不直接,这就是为什么: 我使用 a Jenk
是否有任何适用于 Jenkins 的插件可以为 Jenkins 提供键值存储选项?功能接近的插件是凭据插件。目标是拥有一个存储全局配置参数的插件,并且此参数可用于 Jenkins 作业。 最佳答案 转
默认情况下,Jenkins 是否会保留每个构建中生成的所有构建和工件。或者它会在一段时间后删除它们。我知道我可以配置“丢弃旧版本”选项,但我想知道 Jenkins 的默认行为。 最佳答案 默认是保留所
Jenkins 构建中的每个文件参数“帮助文本”, Accepts a file submission from a browser as a build parameter. The uploade
情况:我在我的虚拟服务器上安装了 Jenkins 并设置了一个“自由式管道”。我通过 webhook push 将它连接到我的 github,它可以工作(当我推送到存储库时,在 jenkins 中启动
我是一名优秀的程序员,十分优秀!