使用vstest.console.exe工具运行Selenium测试时显示测试的URL

时间:2016-07-27 13:44:09

标签: c# selenium jenkins automated-tests

上下文

我配置了执行Selenium C#测试的Jenkins作业。 在建立工作时,我必须提供两个值:

  • 分支构建我的解决方案
  • 应测试的网址

详细说明

Jenkins执行以下步骤:

  • checkout selected branch
  • 将AppSettings中存储的网址替换为用户提供的网址(" TestedURL")
  • 构建解决方案
  • 执行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}

1 个答案:

答案 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