我有一组单元测试,每个单元测试都有一堆方法,每个方法都在TestResults文件夹中生成输出。目前,所有测试文件都在这个文件夹中乱七八糟,但我想给混乱带来一些订单。
理想情况下,我想为每种测试方法都有一个文件夹。
我知道我可以为每个测试添加代码以使其在子文件夹中生成输出,但我想知道是否有办法使用Visual Studio单元测试框架控制输出文件夹位置,可能使用每个测试类的初始化方法,以便添加的任何新测试自动获得自己的输出文件夹,而无需复制/粘贴的样板代码?
答案 0 :(得分:0)
你有点猜测:这取决于你想要对输出做什么?如果输出是由CruiseControl解析的TestResult.xml,为什么还要多个那些?
[编辑]
您可以通过在类中包含测试组并在[TestFixtureSetup]中设置输出文件夹来跟踪文件夹吗?
[编辑]
你应该使用像NUnit这样的测试框架,我假设你熟悉它。
对于您可以执行的特定测试类:
[TestFixture]
public class MyOutPutTests
{
private string folder;
[SetUp]
public void InitializeFolder()
{
this.folder = @"d:\MyFirstOutputTests";
}
[Test]
public void OutImages()
{
... write to this.folder
}
[Test]
public void OutputLogs()
{
.. write logs to this.folder
}
答案 1 :(得分:0)
我最终这样做了:
private string TestDir;
[TestInitialize]
public void InitilizeTests()
{
TestDir = TestContext.TestDir + @"\Out\" +
this.GetType().Name + @"." + TestContext.TestName + @"\";
Directory.CreateDirectory(TestDir);
}
这会创建一个像这样的目录结构:
TestResults
<test run>
Out
<test class name>.<test method name>
我只记得将单元测试的所有输出都指向TestDir