私が過去に行ったことは、データ ソースからテストを作成するためのt4テンプレートを作成することです。通常、テストの CSV ファイル。(再) 生成するには、TT ファイルを開いて保存し、再生成するか、VS ツールを使用するだけです。
これには、条件ごとに 1 つのテストしかないという利点があり、生成されたものであっても、簡単に再現可能なテストが得られます。結局のところ、コードは C# であるため、失敗したテストを非常に簡単にデバッグすることもできます。
たとえば、このコンテンツで *.tt を作成し、いくつかのデータを含む CSV ファイルを作成します。
<#@ template debug="false" hostspecific="true" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".generated.cs" #>
<#
var testCases =
File.ReadAllLines(Path.Combine(Host.TemplateFile, @"Cases.csv"))
.Skip(1) //Headers
.Select(line => line.Split(','))
.Select(
values =>
new
{
TestName = values[0],
Expected = values[1],
Actual = values[2],
//More Stuff from values[n]
});
#>
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace DaveShaw
{
[TestClass]
public class GeneratedTests
{
<#
foreach (var testCase in testCases)
{
#>
[TestMethod]
public void Generated_<#= testCase.Name #>()
{
//Put your Arrange & Act code here
Assert.AreEqual(
expected: <#= testCase.Expected #>
actual: <#= testCase.Expected #>);
}
<#
}
#>
}
}
保存すると、すべてのテストが含まれる *.generated.cs (* は *.tt と同じ) が作成されます。