我想知道是否有可能以某种方式在另一个功能测试中调用一个功能测试,并使父功能测试能够查看子测试是否通过? ...请注意,父级和子级测试位于不同的项目中,尽管我可以在项目的CSPROJ文件中引用子级测试的项目以进行读取访问,但是我无法修改子级测试的项目中的任何内容。
这就是我所追求的:
[TestClass]
public class ParentTests
{
[TestMethod]
public void Test_Parent()
{
var childTestPassed = RunAnotherTest(Test_Child);
if(childTestRunResult == true)
{
// do something
} else
{
// do something
}
}
}
...其中Test_Child
是我要在父测试中运行的子测试方法的名称。
我非常清楚 这就是 not 推荐的测试方法必须是无状态的,独立的,模块化且一致的结果,但是我有一个非常棘手的场景,我[[需要来做我上面所说的事情-无法解决。就像我说的那样,我无法控制子功能测试的源代码,因此,如果以上操作无法实现,则必须将子测试的整个代码复制粘贴到我的父测试中,而我不会不想这样做,因为它很大,涉及导入多个类,接口等,而我对该代码不了解。
如果您still
想知道为什么我要问这个,请发表评论,我可以回答。AssertFailedException
。所以您的代码应如下所示:
[TestClass]
public class ChildTests
{
[TestMethod]
public void Test_Child()
{
Assert.Fail ("Child test failed.");
}
}
和父级测试:
[TestClass] public class ParentTests { [TestMethod] public void Test_Parent() { ChildTests childTests = new ChildTests(); try { childTests.Test_Child(); // child test succeded } catch (AssertFailedException ex) { // child test failed } } }