@@ -11,85 +11,19 @@ tmr.setInput('publishWebProjects', process.env["__publishWebProjects__"] && proc
1111tmr . setInput ( 'arguments' , process . env [ "__arguments__" ] ? process . env [ "__arguments__" ] : "" ) ;
1212tmr . setInput ( 'modifyOutputPath' , process . env [ "modifyOutput" ] == "false" ? "false" : "true" ) ;
1313
14+ // Get out of the Tests folder to the task root folder. This will match the path used in the task.
15+ // We normalize the string to use forward slashes as that is what the mock answer does and makes this test cross platform.
16+ var loggerAssembly = path . join ( __dirname , '..' , 'dotnet-build-helpers/Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll' ) . replace ( / \\ / g, "/" ) ;
17+ var loggerString = `-dl:CentralLogger,"${ loggerAssembly } "*ForwardingLogger,"${ loggerAssembly } "`
18+
1419let a : ma . TaskLibAnswers = < ma . TaskLibAnswers > {
1520 "which" : { "dotnet" : "dotnet" } ,
1621 "checkPath" : { "dotnet" : true } ,
1722 "exist" : {
1823 "web/web.config" : true ,
1924 "web2/wwwroot" : true ,
2025 } ,
21- "exec" : {
22- "dotnet publish web/project.json" : {
23- "code" : 0 ,
24- "stdout" : "published" ,
25- "stderr" : ""
26- } ,
27- "dotnet publish web/project.csproj" : {
28- "code" : 0 ,
29- "stdout" : "published" ,
30- "stderr" : ""
31- } ,
32- "dotnet publish web2/project.json" : {
33- "code" : 0 ,
34- "stdout" : "published" ,
35- "stderr" : ""
36- } ,
37- "dotnet publish web.tests/project.json" : {
38- "code" : 0 ,
39- "stdout" : "published" ,
40- "stderr" : ""
41- } ,
42- "dotnet publish lib/project.json" : {
43- "code" : 0 ,
44- "stdout" : "published" ,
45- "stderr" : ""
46- } ,
47- "dotnet publish web3/project.json --configuration release --output /usr/out/web3" : {
48- "code" : 0 ,
49- "stdout" : "published" ,
50- "stderr" : ""
51- } ,
52- "dotnet publish lib2/project.json --configuration release --output /usr/out/lib2" : {
53- "code" : 0 ,
54- "stdout" : "published" ,
55- "stderr" : ""
56- } ,
57- "dotnet publish web3/project.json --configuration release --output /usr/out" : {
58- "code" : 0 ,
59- "stdout" : "published web3 without adding project name to path\n" ,
60- "stderr" : ""
61- } ,
62- "dotnet publish lib2/project.json --configuration release --output /usr/out" : {
63- "code" : 0 ,
64- "stdout" : "published lib2 without adding project name to path\n" ,
65- "stderr" : ""
66- } ,
67- "dotnet publish --configuration release --output /usr/out" : {
68- "code" : 0 ,
69- "stdout" : "published without adding project name to path\n" ,
70- "stderr" : ""
71- } ,
72- "dotnet publish" : {
73- "code" : 0 ,
74- "stdout" : "published" ,
75- "stderr" : ""
76- } ,
77- "dotnet publish web/project.csproj --configuration release --output /usr/out/web" : {
78- "code" : 0 ,
79- "stdout" : "published" ,
80- "stderr" : ""
81- } ,
82- "dotnet publish lib/project.csproj --configuration release --output /usr/out" : {
83- "code" : 0 ,
84- "stdout" : "published" ,
85- "stderr" : ""
86- } ,
87- "dotnet publish dummy/project.json" : {
88- "code" : 1 ,
89- "stdout" : "not published" ,
90- "stderr" : ""
91- }
92- } ,
26+ "exec" : { } ,
9327 "findMatch" : {
9428 "**/project.json" : [ "web/project.json" , "web2/project.json" , "web.tests/project.json" , "lib/project.json" ] ,
9529 "**/project.json;**/*.csproj" : [ "web/project.json" , "web2/project.json" , "web.tests/project.json" , "lib/project.json" ] ,
@@ -98,10 +32,83 @@ let a: ma.TaskLibAnswers = <ma.TaskLibAnswers>{
9832 "*fail*/project.json" : [ ] ,
9933 "*customoutput/project.json" : [ "web3/project.json" , "lib2/project.json" ] ,
10034 "dummy/project.json" : [ "dummy/project.json" ] ,
101- "" : [ ]
35+ "" : [ ]
10236 }
10337} ;
10438
39+ // Refactored exec values using bracket notation to allow dynamic keys
40+ // This accounts for different paths on different developer machines
41+ a [ "exec" ] [ `dotnet publish web/project.json ${ loggerString } ` ] = {
42+ "code" : 0 ,
43+ "stdout" : "published" ,
44+ "stderr" : ""
45+ } ;
46+ a [ "exec" ] [ `dotnet publish web/project.csproj ${ loggerString } ` ] = {
47+ "code" : 0 ,
48+ "stdout" : "published" ,
49+ "stderr" : ""
50+ } ;
51+ a [ "exec" ] [ `dotnet publish web2/project.json ${ loggerString } ` ] = {
52+ "code" : 0 ,
53+ "stdout" : "published" ,
54+ "stderr" : ""
55+ } ;
56+ a [ "exec" ] [ `dotnet publish web.tests/project.json ${ loggerString } ` ] = {
57+ "code" : 0 ,
58+ "stdout" : "published" ,
59+ "stderr" : ""
60+ } ;
61+ a [ "exec" ] [ `dotnet publish lib/project.json ${ loggerString } ` ] = {
62+ "code" : 0 ,
63+ "stdout" : "published" ,
64+ "stderr" : ""
65+ } ;
66+ a [ "exec" ] [ `dotnet publish web3/project.json ${ loggerString } --configuration release --output /usr/out/web3` ] = {
67+ "code" : 0 ,
68+ "stdout" : "published" ,
69+ "stderr" : ""
70+ } ;
71+ a [ "exec" ] [ `dotnet publish lib2/project.json ${ loggerString } --configuration release --output /usr/out/lib2` ] = {
72+ "code" : 0 ,
73+ "stdout" : "published" ,
74+ "stderr" : ""
75+ } ;
76+ a [ "exec" ] [ `dotnet publish web3/project.json ${ loggerString } --configuration release --output /usr/out` ] = {
77+ "code" : 0 ,
78+ "stdout" : "published web3 without adding project name to path\n" ,
79+ "stderr" : ""
80+ } ;
81+ a [ "exec" ] [ `dotnet publish lib2/project.json ${ loggerString } --configuration release --output /usr/out` ] = {
82+ "code" : 0 ,
83+ "stdout" : "published lib2 without adding project name to path\n" ,
84+ "stderr" : ""
85+ } ;
86+ a [ "exec" ] [ `dotnet publish ${ loggerString } --configuration release --output /usr/out` ] = {
87+ "code" : 0 ,
88+ "stdout" : "published without adding project name to path\n" ,
89+ "stderr" : ""
90+ } ;
91+ a [ "exec" ] [ `dotnet publish ${ loggerString } ` ] = {
92+ "code" : 0 ,
93+ "stdout" : "published" ,
94+ "stderr" : ""
95+ } ;
96+ a [ "exec" ] [ `dotnet publish web/project.csproj ${ loggerString } --configuration release --output /usr/out/web` ] = {
97+ "code" : 0 ,
98+ "stdout" : "published" ,
99+ "stderr" : ""
100+ } ;
101+ a [ "exec" ] [ `dotnet publish lib/project.csproj ${ loggerString } --configuration release --output /usr/out` ] = {
102+ "code" : 0 ,
103+ "stdout" : "published" ,
104+ "stderr" : ""
105+ } ;
106+ a [ "exec" ] [ `dotnet publish dummy/project.json ${ loggerString } ` ] = {
107+ "code" : 1 ,
108+ "stdout" : "not published" ,
109+ "stderr" : ""
110+ } ;
111+
105112process . env [ "MOCK_NORMALIZE_SLASHES" ] = "true" ;
106113tmr . setAnswers ( a ) ;
107114tmr . registerMock ( 'azure-pipelines-task-lib/toolrunner' , require ( 'azure-pipelines-task-lib/mock-toolrunner' ) ) ;
0 commit comments