none
运行build,在发布测试结果的时候出问题了 RRS feed

  • 问题

  • 开发环境 Team Foundation Server 2008 + Visual Studio 2008

    建了一个最简单的ConsoleApplication项目,添加一个简单的求和函数add,利用visual studio自带的功能生成相应函数的测试用例(默认会生成一个测试工程项目),整个解决方案编译运行没有问题 相应的测试用例执行也能测试通过

     

    在TFS中新建Build Type,如果Build不包含运行测试用例,则一切正常,没有问题

    如果包含运行测试用例 则build会失败

    查看build的日志,发现测试案例都通过了,就是在发布测试结果的时候出问题了,有人知道如何解决吗?

     

    下面是日志中跟错误相关比较重要的一部分,个人觉得可能跟WSS服务相关,但不知道如何解决

     

     

    Code Snippet

    正在启动执行...
     
      结果         顶级测试
      --         ----
      通过         (MyTestList/)MyTestProject.ProgramTest.addTest
      通过         (MyTestList/)MyTestProject.ProgramTest.mulTest
      2/2 测试 通过
     
      摘要
      --
      测试运行 已完成。
        通过  2
        -----
        总数  2
      结果文件: C:\Documents and Settings\TFSSetup\Local Settings\Temp\BuildDemo\BuildConsole_4\TestResults\TFSSetup_HQXTAW_BZB28083 2008-10-29 18_20_47_Any CPU_Release.trx
      运行配置: 本地测试运行
      正在等待发布...
      客户端发现响应内容类型为“text/html; charset=utf-8”,但应为“text/xml”。
      请求失败,错误信息为:
      --
      <html>
          <head>
              <title>运行时错误</title>
              <style>
               body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
               p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
               b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
               H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
               H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
               pre {font-family:"Lucida Console";font-size: .9em}
               .marker {font-weight: bold; color: black;text-decoration: none;}
               .version {color: gray;}
               .error {margin-bottom: 10px;}
               .expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
              </style>
          </head>
     
          <body bgcolor="white">
     
                  <span><H1>“/Build/V1.0”应用程序中的服务器错误。<hr width=100% size=1 color=silver></H1>
     
                  <h2> <i>运行时错误</i> </h2></span>
     
                  <font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">
     
                  <b> 说明: </b>服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止查看应用程序错误的详细信息。
                  <br><br>
     
                  <b>详细信息:</b> 若要使他人能够从本地服务器计算机上查看此特定错误消息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“RemoteOnly”。若要使他人能够在远程计算机上查看详细信息,请将“mode”设置为“Off”。<br><br>
     
                  <table width=100% bgcolor="#ffffcc">
                     <tr>
                        <td>
                            <code><pre>
     
      <!-- Web.Config 配置文件 -->
     
      <configuration>
          <system.web>
              <customErrors mode="RemoteOnly"/>
          </system.web>
      </configuration></pre></code>
     
                        </td>
                     </tr>
                  </table>
     
                  <br>
     
                  <b>注释:</b> 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。<br><br>
     
                  <table width=100% bgcolor="#ffffcc">
                     <tr>
                        <td>
                            <code><pre>
     
      <!-- Web.Config 配置文件 -->
     
      <configuration>
          <system.web>
              <customErrors mode="On" defaultRedirect="mycustompage.htm"/>
          </system.web>
      </configuration></pre></code>
     
                        </td>
                     </tr>
                  </table>
     
                  <br>
     
          </body>
      </html>
     
      --.
    MSBUILD : warning MSB6006: “MSTest.exe”已退出,代码为 1。

     

     

    2008年10月29日 11:40

答案

  • 问题已经解决了

     

    自己之前不小心改动了一个地方:

    IIS——>网站——>Team Foundation Server——>Build——>TestTools——>V1.0

    之前 不小心点击了一下 属性中的“创建”按钮,后来改回来了,重新运行build,依然失败,但错误信息跟之前不一样了

    大致如下

     

    正在启动执行...
     
     

    Code Snippet
    结果         顶级测试
      --         ----
      通过         (MyTestList/)MyTestProject.ProgramTest.addTest
      通过         (MyTestList/)MyTestProject.ProgramTest.mulTest
      2/2 测试 通过
     
      摘要
      --
      测试运行 已完成。
        通过  2
        -----
        总数  2
      结果文件: C:\Documents and Settings\TFSSetup\Local Settings\Temp\BuildDemo\BuildConsole_4\TestResults\TFSSetup_HQXTAW_BZB28083 2008-10-31 09_28_10_Any CPU_Release.trx
      运行配置: 本地测试运行
      正在等待发布...
      正在将测试运行结果 TFSSetup@HQXTAW_BZB28083 2008-10-31 09:28:10_Any CPU_Release 发布到 http://hqxtaw_bzb28083:8080/Build/v1.0/PublishTestResultsBuildService2.asmx...
      .发布操作失败。
      发布操作失败。
    MSBUILD : warning MSB6006: “MSTest.exe”已退出,代码为 1。

     

     

    后来又上网搜寻解决方法,发现有不少人也遇到类似的问题,主要原因是因为运行Build的账号没有获得相关的权限

    这些权限主要包括: 共享文件夹的访问控制权限(就是build生成结果的那个共享文件夹)

     

    再重新执行build,成功

     

    Code Snippet

    正在启动执行...
     
      结果         顶级测试
      --         ----
      通过         (MyTestList/)MyTestProject.ProgramTest.addTest
      通过         (MyTestList/)MyTestProject.ProgramTest.mulTest
      2/2 测试 通过
     
      摘要
      --
      测试运行 已完成。
        通过  2
        -----
        总数  2
      结果文件: C:\Documents and Settings\TFSSetup\Local Settings\Temp\BuildDemo\BuildConsole_4\TestResults\TFSSetup_HQXTAW_BZB28083 2008-10-31 09_56_49_Any CPU_Release.trx
      运行配置: 本地测试运行
      正在等待发布...
      正在将测试运行结果 TFSSetup@HQXTAW_BZB28083 2008-10-31 09:56:49_Any CPU_Release 发布到 http://hqxtaw_bzb28083:8080/Build/v1.0/PublishTestResultsBuildService2.asmx...
      .已成功完成发布操作。
    已完成执行任务“TestToolsTask”。

     

     

     

     

     

     

    2008年10月31日 2:02

全部回复

  • 你的测试是什么类型的?另外你尝试在团队构建的机器上本机集成测试一下,或者在团队构建的机器上在生成目录下运行测试看看。
    2008年10月30日 5:30
    版主
  • 就是最简单的单元测试

    我在控制台程序里添加两个最简单的函数

    Code Snippet

    int add(int num1, int num2)

    {

        return num1+num2;

    }

     

    int mul(int num1, int num2)

    {

        return num1*num2;

    }

     

     

    然后在函数名称上右键,点击"创建单元测试",VS会自动生成一个测试的工程以及相关代码,我单独跑这些测试也都没问题,都能通过。

    2008年10月30日 6:32
  • 问题已经解决了

     

    自己之前不小心改动了一个地方:

    IIS——>网站——>Team Foundation Server——>Build——>TestTools——>V1.0

    之前 不小心点击了一下 属性中的“创建”按钮,后来改回来了,重新运行build,依然失败,但错误信息跟之前不一样了

    大致如下

     

    正在启动执行...
     
     

    Code Snippet
    结果         顶级测试
      --         ----
      通过         (MyTestList/)MyTestProject.ProgramTest.addTest
      通过         (MyTestList/)MyTestProject.ProgramTest.mulTest
      2/2 测试 通过
     
      摘要
      --
      测试运行 已完成。
        通过  2
        -----
        总数  2
      结果文件: C:\Documents and Settings\TFSSetup\Local Settings\Temp\BuildDemo\BuildConsole_4\TestResults\TFSSetup_HQXTAW_BZB28083 2008-10-31 09_28_10_Any CPU_Release.trx
      运行配置: 本地测试运行
      正在等待发布...
      正在将测试运行结果 TFSSetup@HQXTAW_BZB28083 2008-10-31 09:28:10_Any CPU_Release 发布到 http://hqxtaw_bzb28083:8080/Build/v1.0/PublishTestResultsBuildService2.asmx...
      .发布操作失败。
      发布操作失败。
    MSBUILD : warning MSB6006: “MSTest.exe”已退出,代码为 1。

     

     

    后来又上网搜寻解决方法,发现有不少人也遇到类似的问题,主要原因是因为运行Build的账号没有获得相关的权限

    这些权限主要包括: 共享文件夹的访问控制权限(就是build生成结果的那个共享文件夹)

     

    再重新执行build,成功

     

    Code Snippet

    正在启动执行...
     
      结果         顶级测试
      --         ----
      通过         (MyTestList/)MyTestProject.ProgramTest.addTest
      通过         (MyTestList/)MyTestProject.ProgramTest.mulTest
      2/2 测试 通过
     
      摘要
      --
      测试运行 已完成。
        通过  2
        -----
        总数  2
      结果文件: C:\Documents and Settings\TFSSetup\Local Settings\Temp\BuildDemo\BuildConsole_4\TestResults\TFSSetup_HQXTAW_BZB28083 2008-10-31 09_56_49_Any CPU_Release.trx
      运行配置: 本地测试运行
      正在等待发布...
      正在将测试运行结果 TFSSetup@HQXTAW_BZB28083 2008-10-31 09:56:49_Any CPU_Release 发布到 http://hqxtaw_bzb28083:8080/Build/v1.0/PublishTestResultsBuildService2.asmx...
      .已成功完成发布操作。
    已完成执行任务“TestToolsTask”。

     

     

     

     

     

     

    2008年10月31日 2:02