У меня есть набор тестов Webdriver, которые написаны на C#, и я использую MSTest в качестве бегуна. На данный момент NUnit не является вариантом, поэтому мне нужно понять, как заставить его работать с текущей конфигурацией. Для CI я использую Jenkins ver. 1,514. Я не контролирую, какие плагины устанавливаются или когда Дженкинс обновляется, и если просить такую вещь может привести к длительным ожиданиям и утверждениям в разных командах (ненависть к биократии).Почему тесты DataDriven больше не работают на Jenkins при использовании MSTest?
Так .. У меня есть несколько тестов 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 в моем проекте. Для того, чтобы запустить этот тест в Дженкинс, я имел обыкновение использовать эту командную строку
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).
Но если Я регистрирую машину, на которой работает ведомый, и запускает ту же команду. Кажется, он находит файлы DataSource, и ir работает нормально.
Кроме того, я установил PsExec и я поставил команду в * .bat файл, то я назвал этот файл из пса 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>
Я был бы признателен, если кто-то может дать мне намек на это. Благодаря