Xunit2Discoverer(ISourceInformationProvider sourceInformationProvider, IAssemblyInfo assemblyInfo, string assemblyFileName, string xunitExecutionAssemblyPath, string configFileName, bool shadowCopy, string shadowCopyFolder, IMessageSink diagnosticMessageSink) { Guard.ArgumentNotNull("assemblyInfo", (object)assemblyInfo ?? assemblyFileName); Guard.FileExists("xunitExecutionAssemblyPath", xunitExecutionAssemblyPath); DiagnosticMessageSink = diagnosticMessageSink ?? new NullMessageSink(); appDomain = new RemoteAppDomainManager(assemblyFileName ?? xunitExecutionAssemblyPath, configFileName, shadowCopy, shadowCopyFolder); var testFrameworkAssemblyName = GetTestFrameworkAssemblyName(xunitExecutionAssemblyPath); // If we didn't get an assemblyInfo object, we can leverage the reflection-based IAssemblyInfo wrapper if (assemblyInfo == null) assemblyInfo = appDomain.CreateObject<IAssemblyInfo>(testFrameworkAssemblyName, "Xunit.Sdk.ReflectionAssemblyInfo", assemblyFileName); framework = appDomain.CreateObject<ITestFramework>(testFrameworkAssemblyName, "Xunit.Sdk.TestFrameworkProxy", assemblyInfo, sourceInformationProvider, DiagnosticMessageSink); discoverer = Framework.GetDiscoverer(assemblyInfo); }
Xunit2Discoverer(ISourceInformationProvider sourceInformationProvider, IAssemblyInfo assemblyInfo, string assemblyFileName, string xunitExecutionAssemblyPath, string configFileName, bool shadowCopy, string shadowCopyFolder) { Guard.ArgumentNotNull("assemblyInfo", (object)assemblyInfo ?? assemblyFileName); #if !ANDROID Guard.ArgumentValid("xunitExecutionAssemblyPath", "File not found: " + xunitExecutionAssemblyPath, File.Exists(xunitExecutionAssemblyPath)); #endif appDomain = new RemoteAppDomainManager(assemblyFileName ?? xunitExecutionAssemblyPath, configFileName, shadowCopy, shadowCopyFolder); #if !ANDROID var name = AssemblyName.GetAssemblyName(xunitExecutionAssemblyPath); var testFrameworkAssemblyName = name.FullName; #else var name = Assembly.Load(xunitExecutionAssemblyPath); var testFrameworkAssemblyName = name.FullName; #endif // If we didn't get an assemblyInfo object, we can leverage the reflection-based IAssemblyInfo wrapper if (assemblyInfo == null) assemblyInfo = appDomain.CreateObject<IAssemblyInfo>(testFrameworkAssemblyName, "Xunit.Sdk.ReflectionAssemblyInfo", assemblyFileName); framework = appDomain.CreateObject<ITestFramework>(testFrameworkAssemblyName, "Xunit.Sdk.TestFrameworkProxy", assemblyInfo, sourceInformationProvider); discoverer = Framework.GetDiscoverer(assemblyInfo); }
/// <summary> /// Initializes a new instance of the <see cref="Xunit1Executor" /> class. /// </summary> /// <param name="testAssemblyFileName">The filename of the test assembly.</param> /// <param name="configFileName">The filename of the configuration file.</param> /// <param name="shadowCopy">Set to <c>true</c> to enable shadow copying the assemblies.</param> public Xunit1Executor(string testAssemblyFileName, string configFileName = null, bool shadowCopy = true) { appDomain = new RemoteAppDomainManager(testAssemblyFileName, configFileName, shadowCopy); xunitAssemblyPath = GetXunitAssemblyPath(testAssemblyFileName); xunitAssemblyName = AssemblyName.GetAssemblyName(xunitAssemblyPath); executor = CreateObject("Xunit.Sdk.Executor", testAssemblyFileName); TestFrameworkDisplayName = String.Format(CultureInfo.InvariantCulture, "xUnit.net {0}", AssemblyName.GetAssemblyName(xunitAssemblyPath).Version); }
public DiaSessionWrapper(string assemblyFilename) { session = new DiaSession(assemblyFilename); var assemblyFileName = typeof(DiaSessionWrapperHelper).Assembly.GetLocalCodeBase(); appDomainManager = new RemoteAppDomainManager(assemblyFileName, null, true, null); helper = appDomainManager.CreateObject<DiaSessionWrapperHelper>(typeof(DiaSessionWrapperHelper).Assembly.FullName, typeof(DiaSessionWrapperHelper).FullName, assemblyFilename); }
public DiaSessionWrapper(string assemblyFilename, bool shadowCopy = true, string configFileName = null) { session = new DiaSession(assemblyFilename); string xUnitAssemblyPath = typeof(DiaSessionWrapperHelper).Assembly.GetLocalCodeBase(); string xUnitAssemblyDirectory = Path.GetDirectoryName(xUnitAssemblyPath); appDomainManager = new RemoteAppDomainManager(assemblyFilename, configFileName, shadowCopy, null); // We want to be able to create the wrapper in the other domain, yet keep the domain centered on the test assembly. helper = appDomainManager.CreateObjectFromPath<DiaSessionWrapperHelper>(xUnitAssemblyPath, typeof(DiaSessionWrapperHelper).FullName, assemblyFilename, xUnitAssemblyDirectory); }