static (string runtime, Version Version) GetRuntimeAndVersion() { var description = RuntimeInformation.FrameworkDescription; if (description.StartsWith(".NET Framework", StringComparison.OrdinalIgnoreCase)) { var version = Version.Parse(description.Replace(".NET Framework ", "")); return("Net", version); } if (description.StartsWith(".NET Core", StringComparison.OrdinalIgnoreCase)) { return("Core", Environment.Version); } if (description.StartsWith(".NET", StringComparison.OrdinalIgnoreCase)) { return("DotNet", Environment.Version); } throw InnerVerifier.exceptionBuilder($"Could not resolve runtime for '{description}'."); }
internal static string DeriveDirectory(string sourceFile, Assembly assembly) { if (deriveDirectory == null) { return(Path.GetDirectoryName(sourceFile) !); } var projectDirectory = assembly.GetCustomAttributes <AssemblyMetadataAttribute>() .SingleOrDefault(x => x.Key == "Verify.ProjectDirectory") ?.Value; if (projectDirectory == null) { throw InnerVerifier.exceptionBuilder("Using `DeriveTestDirectory` requires that the test assembly be initialized at assembly load time. Call `SharedVerifySettings.SetTestAssembly(Assembly.GetExecutingAssembly());`."); } var directory = deriveDirectory(sourceFile, projectDirectory); if (directory == null) { return(Path.GetDirectoryName(sourceFile) !); } return(directory); }