包含有序测试的项目将 .NET Framework 4.6.1 作为目标框架。有序测试是使用 vs2017 进行的。
我使用 TFS 版本 15.117.27414.0,其中我有一个构建和一个发布定义来将测试部署到我的测试环境中的机器上。包含我订购的测试的 UItest 项目由构建服务器上的构建代理构建。构建服务器使用 Visual Studio Enterprise 2017 版本 15.7.6。
发布定义只包含一个 Visual Studio 测试任务:
- 版本 2 被选中
- 使用路径指向我的 .orderedtest 文件的测试程序集。
- 测试组合包含 UI 测试被选中。
- 测试平台版本是vs 2017
运行此测试的测试代理安装在我的测试环境中的机器上,并配置为运行 UI 测试。
这些是发布发布后来自 TFS 的日志:
##[section]Starting: VSTest - Test assemblies
==============================================================================
Task : Visual Studio Test
Description : Run tests with Visual Studio test runner
Version : 2.0.55
Author : Microsoft Corporation
Help : [More Information](https://go.microsoft.com/fwlink/?LinkId=835764)
==============================================================================
Run the tests locally using vstest.console.exe
========================================================
Test selector : Test assemblies
Test assemblies : Deploy and Distributed Test-CI\drop\completeRun.orderedtest
Test filter criteria : null
Search folder : C:\agent\_work\r1\a
Run settings file : C:\agent\_work\r1\a
Run in parallel : false
Run in isolation : false
Path to custom adapters : null
Other console options : null
Code coverage enabled : false
VisualStudio version selected for test execution : 15.0
[command]powershell -NonInteractive -ExecutionPolicy Unrestricted -file C:\agent\_work\_tasks\VSTest_ef087383-ee5e-42c7-9a53-ab56c98420f9\2.0.55\vs15Helper.ps1
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
<S>C:\Program Files (x86)\Microsoft Visual Studio\2017\TestAgent</S>
</Objs>
[command]wmic datafile where "name='C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\TestAgent\\Common7\\IDE\\CommonExtensions\\Microsoft\\TestWindow\\vstest.console.exe'" get Version /Value
Version=15.0.27924.0
Version=15.0.27924.0
========================================================
[command]"C:\Program Files (x86)\Microsoft Visual Studio\2017\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" "C:\agent\_work\r1\a\Deploy and Distributed Test-CI\drop\completeRun.orderedtest" /logger:trx "/TestAdapterPath:\"C:\agent\_work\r1\a\""
Microsoft (R) Test Execution Command Line Tool Version 15.8.0
Copyright (c) Microsoft Corporation. All rights reserved.
Starting test execution, please wait...
An exception occurred while invoking executor 'executor://orderedtestadapter/v1': Method not found: 'Void Microsoft.VisualStudio.TestTools.Common.TestRunConfiguration.AddTestSettingsProperties(System.Collections.Generic.Dictionary`2<System.String,System.Object>)'.
Test Run Failed.
##[warning]Vstest failed with error. Check logs for failures. There might be failed tests.
##[error]Error: C:\Program Files (x86)\Microsoft Visual Studio\2017\TestAgent\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe failed with return code: 1
##[warning]No results found to publish.
##[error]Vstest exited with return code: 1.
##[section]Finishing: VSTest - Test assemblies
##[section]Finishing: Release
我在网上搜索了这个异常,但到目前为止没有找到任何有用的东西。我尝试使用该机器上的 vstest 控制台直接在测试机器上运行有序测试,但它给了我相同的结果。所以我认为我的构建和发布定义是好的。
更新:
我将目标 .net 框架更改为 .net 4.5,因为 vstest.console.exe 没有提到 .net 框架 4.6.1 作为目标框架的参数。这没有帮助。我发现我能够通过我的开发机器上的 vstest 控制台运行有序的测试,所以我正在考虑测试机器上缺少 DLL 的方向。请注意,测试机器上没有安装vs2017。