0

所以我的问题如下。(Microsoft 测试管理器、测试控制器、测试代理)

我有一个在多个服务上运行测试的测试计划,一些服务相同但版本不同。

不同版本的服务在其客户端 dll 上具有相同的名称。可以说 person.client.dll

所以问题来了。

当我运行测试(整个测试计划)时,第一个版本测试失败,但当我单独运行它们时它不会失败。

所以我用谷歌搜索并在 testagent 上做了一些登录,发现了这个:

将远程文件:C:\Users\service.tfstestcontr\AppData\Local\VSEQT\QTController\746\Deployment\Hogia.Person.Client.dll 复制到:C:\Users\fredrik.almen\AppData\Local\VSEQT\QTAgent \746\isptest2013.hogia.local\Deployment\Hogia.Person.Client.dll

因此,如果我正确地指出了问题,这就是问题所在。它将所有文件复制到同一文件夹“部署” person.client.dll 早期版本将首先出现,然后是第二个,覆盖第一个。

这将导致版本 1 测试失败,因为它违反了错误的 dll。

所以我的第一个想法是。开发人员需要重命名他们的 dll。但这是另一个问题。

我们的客户想要一种简单的方法来升级到新版本,因此在 dll 上使用相同的名称将大大简化他们的升级。

所以这不是一个选择。

我为每个项目构建所有内容,它们都是不同的解决方案,但在相同的构建定义中。

我的问题

有没有什么办法解决这一问题?也许复制功能将 alla dll 分隔在不同的文件夹或任何其他解决方案中。当他们进入 dropfolder 时,我想保留我的文件夹结构

(文件夹结构))

应用服务测试

人员服务测试

PErsonserviceTestsV2
请参阅链接:http: //prntscr.com/54vm0a

这就是 droplocation 的样子,所以它们都是分开的。然后,当我一起运行所有测试时,所有这些文件夹中的所有 dll 都被放置在部署文件夹的一个文件夹中,这就是当同名的 dll 被覆盖时。

我将所有内容都包含在一个构建定义中的原因是因为这是我们的部署验收测试,如果这些测试没有成功运行,那么我们将无法部署。因此,将不同的版本分开到不同的构建解决方案只会很耗时。部署验收测试的一个测试计划。运行测试的是开发人员,所以我们需要为他们保持简单,而不是为不同的版本引入不同的测试计划。

(因此具有不同 build_definition 的解决方案可能对我不起作用)

无论如何,在测试运行中进行复制时,是否将 testcontroller/testagent 配置为单独的 dll。那会为我解决问题吗?

4

1 回答 1

0

您不能按照您想要的方式将测试 dll 及其依赖项部署到子文件夹中。
如果您运行由单元测试(或Web 测试有序测试)自动化的测试用例,测试代理会查找包含测试的 dll。无法设置在运行特定Test Case时使用哪个部署子文件夹。

我能想象到的最佳解决方案是保留您的单一构建定义和单一测试计划,但不要一次运行所有测试。
只需将您的测试拆分为多个测试运行:为您正在测试的服务的每个版本进行一个单独的测试运行

或者,您可以将测试分布在多个环境中(每个版本的服务一个环境),但它会比多次运行的方法更昂贵。

建议如何简单地开始测试运行和收集结果:(
请参阅下面描述当前如何实现测试开始的评论)

  1. 为要测试的每个版本的服务创建一个单独的测试套件
  2. 扩展您的 REST 服务实现,如下所示:
    • 迭代新创建的测试套件并根据需要将尽可能多的测试运行排队
      这些测试运行将一个接一个地运行
    • 等到所有测试运行完成
    • 发送一封包含所有测试运行报告的电子邮件
于 2014-11-11T07:33:52.587 回答