static IEnumerable <TestCase> GetTestCases(ExecutorWrapper executor) { foreach (XmlNode methodNode in executor.EnumerateTests().SelectNodes("//method")) { yield return(GetTestCase(executor.AssemblyFilename, methodNode)); } }
public void AcceptanceTest() { string code = @" using System; using Xunit; namespace Namespace1 { public class Class1 { [Fact] [Trait(""Name!"", ""Value!"")] public void Passing() { Assert.Equal(2, 2); } [Fact] public void Failing() { Assert.Equal(2, 3); } [Fact(Skip=""Skipping"")] public void Skipped() {} [Fact(Name=""Custom Test Name"")] public void CustomName() {} } } namespace Namespace2 { public class OuterClass { public class Class2 { [Fact] public void Passing() { Assert.Equal(2, 2); } } } } "; XmlNode assemblyNode = null; string filename = null; using (MockAssembly assembly = new MockAssembly()) { assembly.Compile(code); filename = assembly.FileName; using (ExecutorWrapper wrapper = new ExecutorWrapper(assembly.FileName, null, false)) assemblyNode = wrapper.EnumerateTests(); } Assert.Equal(filename, assemblyNode.Attributes["name"].Value); XmlNodeList classNodes = assemblyNode.SelectNodes("class"); Assert.Equal(classNodes.Count, 2); XmlNode class1Node = classNodes[0]; Assert.Equal("Namespace1.Class1", class1Node.Attributes["name"].Value); XmlNodeList class1MethodNodes = class1Node.SelectNodes("method"); Assert.Equal(class1MethodNodes.Count, 4); XmlNode passingNode = class1Node.SelectSingleNode(@"//method[@method=""Passing""]"); Assert.NotNull(passingNode); Assert.Equal("Namespace1.Class1.Passing", passingNode.Attributes["name"].Value); XmlNodeList traitsNodes = passingNode.SelectNodes("traits/trait"); XmlNode traitNode = (XmlNode)Assert.Single(traitsNodes); Assert.Equal("Name!", traitNode.Attributes["name"].Value); Assert.Equal("Value!", traitNode.Attributes["value"].Value); Assert.NotNull(class1Node.SelectSingleNode(@"//method[@method=""Failing""]")); XmlNode skipNode = class1Node.SelectSingleNode(@"//method[@method=""Skipped""]"); Assert.NotNull(skipNode); Assert.Equal("Skipping", skipNode.Attributes["skip"].Value); XmlNode customNameNode = class1Node.SelectSingleNode(@"//method[@method=""CustomName""]"); Assert.NotNull(customNameNode); Assert.Equal("Custom Test Name", customNameNode.Attributes["name"].Value); XmlNode class2Node = classNodes[1]; Assert.Equal("Namespace2.OuterClass+Class2", class2Node.Attributes["name"].Value); XmlNodeList class2MethodNodes = class2Node.SelectNodes("method"); Assert.Equal(class2MethodNodes.Count, 1); Assert.Equal("Namespace2.OuterClass+Class2", class2MethodNodes[0].Attributes["type"].Value); Assert.Equal("Passing", class2MethodNodes[0].Attributes["method"].Value); }
static IEnumerable<TestCase> GetTestCases(ExecutorWrapper executor) { string source = executor.AssemblyFilename; using (DiaSessionWrapper diaSession = new DiaSessionWrapper(source)) foreach (XmlNode methodNode in executor.EnumerateTests().SelectNodes("//method")) yield return GetTestCase(diaSession, source, methodNode); }
static IEnumerable<TestCase> GetTestCases(ExecutorWrapper executor) { foreach (XmlNode methodNode in executor.EnumerateTests().SelectNodes("//method")) yield return GetTestCase(executor.AssemblyFilename, methodNode); }