我有3个项目。将它们称为项目A,B和C。这些项目具有非常相似的功能,即使它们彼此无关。通过在互联网上进行研究,我发现人们将他们的单元测试放在了他们正在从事的项目上。
让我解释一下为什么创建一个测试所有项目的单元测试项目而不是3个单元测试项目的原因。
这是我使用的模式:
[Test]
public void TestFoo()
{
var filter = SystemType.ProjectA | SystemType.ProjectC; // Need to test this on projectA and ProjectB
// linuxSystems are the computers where I perform the tests
var linuxSystems = Globals.LinuxSystemsToTest();
foreach (var ls in linuxSystems)
{
// do not test if flag is not precent
if (filter.HasFlag(ls.SystemType) == false)
return;
ls.Connect();
var output = ls.RunCommand("sudo cat /var/someFile");
Assert.IsTrue(output.Contains("foo"));
// perform test
}
}
如果我决定为每个项目创建一个单元测试项目(有3个),那么我将不得不创建2个调用相同基类的单元测试。此外,在添加新测试时,如果需要在所有3个项目上进行测试,则必须打开3个项目并在每个项目上添加测试,而不仅仅是行var filet = SystemType.ProjectA | SystemType.ProjectB | SystemType.ProjectC;
。有一个项目将使我不必做所有这些事情。
你们推荐用于测试我的3个项目的最佳模式是什么?