【发布时间】:2014-10-28 22:16:51
【问题描述】:
在我的包中,我使用(DTE) GetService(typeof (DTE)) 来获取有关当前打开的解决方案的信息。有没有办法模拟这个进行测试,特别是这样我可以使用dte.Solution.SolutionBuild 构建?
主包类中的代码:
var solutionModel = new SolutionModel(((DTE) GetService(typeof (DTE))).Solution);
SolutionModel 类(剥离):
public class SolutionModel
{
private readonly Solution _packageSolution;
public SolutionModel(Solution solution)
{
_packageSolution = solution;
}
public SolutionModel() {} // This constructor is used for tests so _packageSolution will be null
public bool Build()
{
if (_packageSolution != null)
{
var buildObject = _packageSolution.SolutionBuild;
buildObject.Build(true);
return buildObject.LastBuildInfo == 0;
}
return ManualCleanAndBuild(); // current messy alternative way of doing the build for tests
}
}
所以我希望能够在我的测试中使用_packageSolution 构建而不是ManualCleanAndBuild()。
【问题讨论】:
标签: c# visual-studio envdte vspackage