gpt4 book ai didi

c# - 在 Visual Studio 扩展中使用 DTE2 界面接收测试运行开始/完成

转载 作者:行者123 更新时间:2023-11-30 13:46:35 28 4
gpt4 key购买 nike

有没有办法在 visual studio 扩展中订阅测试资源管理器事件?我在 DTE2 界面中没有找到类似的东西。我的目标是在测试运行完成时从扩展中触发一些功能(对于从测试资源管理器运行的测试)

谢谢!

最佳答案

感谢 280Z28 的回答。使用应用程序对象 DTE 的工作代码:

using System.ComponentModel.Composition;
using Microsoft.VisualStudio.TestWindow.Extensibility;
using Microsoft.VisualStudio.ComponentModelHost;
using Microsoft.VisualStudio.Shell;
using Microsoft.VisualStudio.TestTools.Execution;

public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
Microsoft.VisualStudio.OLE.Interop.IServiceProvider InteropServiceProvider = application as Microsoft.VisualStudio.OLE.Interop.IServiceProvider;
_ServiceProvider = new ServiceProvider(InteropServiceProvider);
_ComponentModel = (IComponentModel)_ServiceProvider.GetService(typeof(SComponentModel));
_OperationState = _ComponentModel.GetService<IOperationState>();
_OperationState.StateChanged += _OperationState_StateChanged;
}

void _OperationState_StateChanged(object sender, OperationStateChangedEventArgs e)
{
}

也可以通过 ITestsService 访问当前发现的测试。

_TestsService = _ComponentModel.GetService<Microsoft.VisualStudio.TestWindow.Extensibility.ITestsService>();

var GetTestTask = _TestsService.GetTests();
GetTestTask.ContinueWith(Task =>
{
var DiscoveredTests = Task.Results.ToList();
});

关于c# - 在 Visual Studio 扩展中使用 DTE2 界面接收测试运行开始/完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20649196/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com