public void ErrorOccursWhenBuildingPortableProjectToSpecificOutputPathWithoutSpecifyingFramework() { var testInstance = TestAssetsManager.CreateTestInstance("PortableTests") .WithLockFiles(); var result = new BuildCommand( projectPath: Path.Combine(testInstance.TestRoot, "PortableApp"), output: Path.Combine(testInstance.TestRoot, "out")) .ExecuteWithCapturedOutput(); result.Should().Fail(); result.Should().HaveStdErrContaining("When the '--output' option is provided, the '--framework' option must also be provided."); }
public void ErrorOccursWhenBuildingPortableProjectAndSpecifyingFrameworkThatProjectDoesNotSupport() { var testInstance = TestAssetsManager.CreateTestInstance("PortableTests") .WithLockFiles(); var result = new BuildCommand( projectPath: Path.Combine(testInstance.TestRoot, "PortableApp"), output: Path.Combine(testInstance.TestRoot, "out"), framework: "sl40") .ExecuteWithCapturedOutput(); result.Should().Fail(); result.Should().HaveStdErrContaining("Project does not support framework: Silverlight,Version=v4.0."); }
private string BuildMSBuild( DirectoryInfo projectDirectory, string projectName, string configuration = "Debug", string runtime = null, string framework = null) { if (projectName != null && !Path.HasExtension(projectName)) { projectName = projectName + ".csproj"; } DeleteXproj(projectDirectory); var result = new BuildCommand() .WithWorkingDirectory(projectDirectory) .WithRuntime(runtime) .WithFramework(framework) .ExecuteWithCapturedOutput($"{projectName} /p:Configuration={configuration}"); result .Should().Pass(); return(result.StdOut); }
public void BuildingAPortableProjectProducesDepsFile() { var testInstance = TestAssetsManager.CreateTestInstance("BuildTestPortableProject") .WithLockFiles(); var result = new BuildCommand( projectPath: testInstance.TestRoot, forcePortable: true) .ExecuteWithCapturedOutput(); result.Should().Pass(); var outputBase = new DirectoryInfo(Path.Combine(testInstance.TestRoot, "bin", "Debug")); var netstandardappOutput = outputBase.Sub("netstandardapp1.5"); netstandardappOutput.Should() .Exist().And .HaveFiles(new[] { "BuildTestPortableProject.deps", "BuildTestPortableProject.deps.json", "BuildTestPortableProject.dll", "BuildTestPortableProject.pdb" }); }
private static void BuildAndTest(string testRoot) { string appName = Path.GetFileName(testRoot); var result = new BuildCommand( projectPath: testRoot) .ExecuteWithCapturedOutput(); result.Should().Pass(); var outputBase = new DirectoryInfo(Path.Combine(testRoot, "bin", "Debug")); var netcoreAppOutput = outputBase.Sub("netcoreapp1.0"); netcoreAppOutput.Should() .Exist().And .OnlyHaveFiles(new[] { $"{appName}.deps.json", $"{appName}.dll", $"{appName}.pdb", $"{appName}.runtimeconfig.json", $"{appName}.runtimeconfig.dev.json" }); }
private void BuildProjectJson(string projectDirectory) { var projectFile = Path.Combine(projectDirectory, "project.json"); var result = new BuildCommand(projectPath: projectFile) .ExecuteWithCapturedOutput(); result.Should().Pass(); }
private DirectoryInfo Build(TestInstance testInstance) { var result = new BuildCommand( projectPath: Path.Combine(testInstance.TestRoot, "PortableApp")) .ExecuteWithCapturedOutput(); result.Should().Pass(); var outputBase = new DirectoryInfo(Path.Combine(testInstance.TestRoot, "PortableApp", "bin", "Debug")); return outputBase.Sub("netstandard1.5"); }
private string BuildMSBuild(string projectDirectory, string projectName, string configuration = "Debug") { if (projectName != null) { projectName = projectName + ".csproj"; } DeleteXproj(projectDirectory); var result = new BuildCommand() .WithWorkingDirectory(projectDirectory) .ExecuteWithCapturedOutput($"{projectName} /p:Configuration={configuration}"); result .Should().Pass(); return(result.StdOut); }
public DirectoryInfo Build(TestInstance testInstance) { var projectPath = Path.Combine(testInstance.TestRoot, "StandaloneApp"); var result = new BuildCommand( projectPath: projectPath) .ExecuteWithCapturedOutput(); var contexts = ProjectContext.CreateContextForEachFramework( projectPath, null, PlatformServices.Default.Runtime.GetAllCandidateRuntimeIdentifiers()); var runtime = contexts.FirstOrDefault(c => !string.IsNullOrEmpty(c.RuntimeIdentifier))?.RuntimeIdentifier; result.Should().Pass(); var outputBase = new DirectoryInfo( Path.Combine(testInstance.TestRoot, "StandaloneApp", "bin", "Debug", "netstandardapp1.5")); return outputBase.Sub(runtime); }
private static string Build(string testRoot) { string appName = Path.GetFileName(testRoot); var result = new BuildCommand( projectPath: testRoot) .ExecuteWithCapturedOutput(); result.Should().Pass(); // the correct build assembly is next to its deps.json file var depsJsonFile = Directory.EnumerateFiles(testRoot, appName + FileNameSuffixes.DepsJson, SearchOption.AllDirectories).First(); return Path.Combine(Path.GetDirectoryName(depsJsonFile), appName + ".dll"); }
private void StandaloneApp_WithoutCoreClrDll_Fails() { // Convert a Portable App to Standalone to simulate the customer scenario var testInstance = TestAssetsManager.CreateTestInstance("DependencyChangeTest") .WithLockFiles(); // Convert the portable test project to standalone by removing "type": "platform" and adding rids var originalTestProject = Path.Combine(testInstance.TestRoot, "PortableApp_Standalone", "project.json"); var modifiedTestProject = Path.Combine(testInstance.TestRoot, "PortableApp_Standalone", "project.json.modified"); // Simulate a user editting the project.json File.Delete(originalTestProject); File.Copy(modifiedTestProject, originalTestProject); var buildResult = new BuildCommand(originalTestProject, framework: DefaultFramework) .ExecuteWithCapturedOutput(); buildResult.Should().Fail(); buildResult.StdErr.Should().Contain("Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes"); buildResult.StdErr.Should().Contain("The project has not been restored or restore failed - run `dotnet restore`"); }