public void SetupTestFile() { var model = new TestModel { TestSuiteScript = @".\ast.test.pxs", UnitsUnderTest = new TestDependency[]{ new TestDependency { ScriptName = @"psr\impl\ast.pxs", Dependencies = new string[] { }}, }, TestDependencies = new TestDependency[]{ } }; Initialize(); Runner.Configure(model, this); }
internal override void Configure(TestModel model, ScriptedUnitTestContainer container) { // Rewire the units under test to point to stored representations var originalUnits = model.UnitsUnderTest.ToList(); var storedNameMap = originalUnits.ToDictionary(td => td.ScriptName, td => { var ext = Path.GetExtension(td.ScriptName); var extLen = ext == null ? 0 : ext.Length; var baseName = td.ScriptName.Substring(td.ScriptName.Length - extLen); return string.Format("{0}~-stored{1}", baseName, ext); }); model.UnitsUnderTest = model.UnitsUnderTest.Select(td => new TestDependency { ScriptName = storedNameMap[td.ScriptName], Dependencies = td.Dependencies.Select(d => storedNameMap[d]).ToArray() }).ToArray(); // Configure the test as per usual base.Configure(model, container); }
// ReSharper disable InconsistentNaming internal virtual void Configure(TestModel model, ScriptedUnitTestContainer container) // ReSharper restore InconsistentNaming { // describe units under test foreach (var unit in model.UnitsUnderTest) ModuleCache.Describe(container.Loader, unit); // describe unit testing framework LoadUnitTestingFramework(container); // describe unit testing extensions foreach(var extension in model.TestDependencies) ModuleCache.Describe(container.Loader, extension); // describe test suite var suiteDependencies = model.UnitsUnderTest .Append(model.TestDependencies) .Select(d => d.ScriptName) .Append(ScriptedUnitTestContainer.PrexoniteUnitTestFramework) .ToArray(); var suiteDescription = new TestDependency { ScriptName = model.TestSuiteScript, Dependencies = suiteDependencies }; ModuleCache.Describe(container.Loader, suiteDescription); // Finally instantiate the test suite application(s) var result = ModuleCache.Load(model.TestSuiteScript); container.Application = result.Item1; container.PrintCompound(); ITarget target = result.Item2; if (!target.IsSuccessful) { Console.WriteLine("The target {0} failed to build.", target.Name); if(target.Exception != null) Console.WriteLine(target.Exception); foreach (var error in target.Messages.Where(m => m.Severity == MessageSeverity.Error)) Console.WriteLine("Error: {0}", error); foreach (var warning in target.Messages.Where(m => m.Severity == MessageSeverity.Warning)) Console.WriteLine("Warning: {0}", warning); foreach (var info in target.Messages.Where(m => m.Severity == MessageSeverity.Info)) Console.WriteLine("Info: {0}", info); Assert.Fail("The target {0} failed to build.", target.Name); } _prepareExecution(container); }
public void SetupTestFile() { var model = new TestModel { TestSuiteScript = @".\macro.test.pxs", UnitsUnderTest = new TestDependency[]{ new TestDependency { ScriptName = @"psr\impl\ast.pxs", Dependencies = new string[] { }}, new TestDependency { ScriptName = @"psr\impl\macro.pxs", Dependencies = new string[] { @"psr\impl\ast.pxs", }}, }, TestDependencies = new TestDependency[]{ new TestDependency { ScriptName = @"psr\test\meta_macro.pxs", Dependencies = new string[] { PrexoniteUnitTestFramework }}, } }; Initialize(); Runner.Configure(model, this); }