我需要一些帮助来确定如何在同一解决方案中使用代码约定和Visual Studio代码覆盖率分析。
我在接口上使用了推荐的代码契约方法。见下面的例子。但是当运行代码覆盖率分析时,它不会查看生产代码,只会查看“接口”上的代码合同。
/// <summary>
/// Defines a task handler to be used in the processing
/// </summary>
[ContractClass(typeof(ITaskHandlerCodeContract))]
public interface ITaskHandler
{
/// <summary>
/// Processes the specified task.
/// </summary>
/// <param name="task">The task to process.</param>
/// <returns>Returns the result of the task processing</returns>
TaskResponse Process(TaskRequest task);
}
[ContractClassFor(typeof(ITaskHandler))]
abstract class ITaskHandlerCodeContract : ITaskHandler
{
public TaskResponse Process(TaskRequest task)
{
Contract.Requires<ArgumentNullException>(task != null);
Contract.Requires<ArgumentException>(task.CommandOrderID != null);
Contract.Requires<ArgumentException>(!string.IsNullOrEmpty(task.TaskCode));
Contract.Requires<ArgumentException>(task.TaskRequestID != null);
throw new NotImplementedException();
}
}
当我对此进行代码覆盖率分析时,它无法在实际实现中显示代码覆盖率。
如果有人能帮助我正确设置,我会永远感激。