上下文
我配置了执行Selenium C#测试的Jenkins作业。 在建立工作时,我必须提供两个值:
详细说明
Jenkins执行以下步骤:
执行vstest.console.exe工具(随Visual Studio 2012提供,存在于以下路径中:" Microsoft Visual Studio 11.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TestWindow")as as如下:
vstest.console.exe" c:\ myProject \ bin \ Debug \ myProject.Test.dll"
问题
我想确保测试正确的URL:我想在Jenkins / vstest.console.exe输出的控制台输出中显示URL。
我在StackOverflow上的不同答案后修改了我的代码。
直接从Visual Studio在测试输出中显示URL。不幸的是,我仍然没有在vstest.console.exe / Jenkins输出中看到任何测试网址。
如何在输出中显示URL(如何修改printMessage方法)?
我的代码如下:
*** Settings***
Library Selenium2Library
Library String
*** Variables ***
${RANUSER} Generate Random String 10 [LETTERS]
*** Test Cases ***
Enter Random Username
Input Text //input[@id='userInput'] ${RANUSER}
答案 0 :(得分:0)
由于我找不到直接的解决方案,我找到了解决方法。
vstest.console.exe具有 / logger:trx 选项,可生成扩展名为.trx的文件。提到的文件是一个包含测试结果和Std输出的xml。我注意到当我在测试方法中使用printmessage时,消息就在那里(在trx文件的std输出中)。
让我提供生成的.trx文件的一部分:
<Output>
<StdOut>Tested URL was 'http://someURL'
Debug Trace:
Tested URL: 'http://someURL'
Trying to log into as 'Incorrect account'
TestContext Messages:
Tested URL: 'http://someURL'
Trying to log into as 'Incorrect account'</StdOut>
</Output>
</UnitTestResult>
有一些工具可以将.trx转换为.html。 因此,Jenkins可以在控制台输出链接中显示测试结果。
<小时/> BUT
我有问题,因为我找不到工作正常的工具并在生成的html文件中显示Std输出。 从那以后,我写了以下Powershell代码:
# set $inputTRXFile, $outputHTMLFile before running following lines
$results = ([xml] (Get-Content $inputTRXFile)).TestRun.Results.UnitTestResult
$results | select testname,outcome,duration, @{Name="Output";Expression={$_.Output.InnerText}} | ConvertTo-HTML -head $a -title "Test results" | Out-File $outputHTMLFile