运行 dev-ops 中不同 类 的自动测试不起作用

Running auto tests from different classes in dev-ops does not work

我有很多自动测试。从 Visual Studio 2017 年开始,我可以按任何顺序 运行 它们,并且它们有效。我正在使用 WebAppDriver、c# 和 Selenium。

当我们 运行 来自 Dev-Ops 的测试时,第一个 class 中的测试有效,但是一旦它开始 运行ning 另一个 class 中的测试,它们不起作用。

我的测试应该是独立的,并且能够 运行 以任何顺序进行,但似乎存在问题。

我不想控制测试 运行 的顺序,它们应该是独立的,但我确实想知道哪里出了问题。

每个测试 Class 都有一个 ClassInitialize 使用启动被测系统并将我的驱动程序附加到它的设置。还有一个关闭被测系统的Teardown。

我的问题是,当测试在 dev-ops 中 运行 时,我如何调试或找出问题所在,运行 与 [=28 中的测试有什么区别=] 2017 年,他们都在那里工作,运行从他们似乎停止工作的开发运营中进行测试。

到目前为止,我已经将我的测试设置为从 VS2017 开始的 运行,其顺序与开发操作发生在 运行 中的顺序相同。我通过创建播放列表并编辑播放列表文件来完成此操作设置顺序。我无意控制测试顺序,而只是为了让 VS2017 模仿 dev-ops 运行 测试的顺序。我发现那些在所选顺序中执行 运行 的测试有效来自 VS2017,但当 运行 来自 dev-ops 时,不按相同的顺序工作。

dev-ops 有什么不同之处?

我得出的解决方案是:

  1. 在Dev-Ops -> Release Pipeline -> Tasks -> VS Test - Auto Test -> Visual Studio Test(紫色烧杯图标),设置“Batch Tests = Based on测试组件”。

  2. 在 Visual Studio 中确保每个测试 Class 都在它自己的项目中,然后将该项目的程序集名称设置为唯一/与该测试相关 class(您的解决方案可能需要很多项目)。

  3. 删除并重新link 你的自动测试从 Visual Studio 到 dev-ops 测试用例,这是一次完成 1 个测试。

然后并且只有那时 Dev-Ops 才能 运行 从 Class A 进行测试,然后按顺序从 Class B 进行测试。