LogicAppUnit / TestingFramework

Unit testing framework for Azure Logic Apps (Standard)
MIT License
23 stars 11 forks source link

feat: Include the user environment variables path to the available pa… #21

Closed danielduartemindera closed 1 year ago

danielduartemindera commented 1 year ago

Some developers have not admin rights on the machines where they are developing. Therefore, we can only install the azure functions core tools in specific folders and then add that folder to the user environment path variable. Therefore, we need that the path from the user is read also in order to get the path for the tools

mark-abrams commented 1 year ago

Hi @danielduartemindera , thank you for your contribution and PR. I've had a look at the change and this is very similar to PR #20 which updates the code to use the Process scope instead of the Machine scope when retrieving the PATH environment variable. My understanding of how Machine, User and Process PATH environment variables work is based on this article which says:

Environment variables in the process scope are a combination of the machine and user scopes, along with some variables that Windows creates dynamically.

So I beleive that PR #20 will solve you problem because it is combining the Machine and User scopes by using the Process scope, which is essentially what you have implemented. However, I will approve both this PR and PR #20 (and resolve the conflicts) because you have also corrected the typo in the enviromentPath variable name.

I'll be releasing version 1.7.0 of LogicAppUnit in a few weeks' time so I'll approve this PR and PR #20 at the same time.

danielduartemindera commented 1 year ago

Hi Mark,

Glad to hear that.

Thanks for the update, Daniel Duarte

On Fri, Jul 7, 2023, 12:39 Mark Abrams @.***> wrote:

Hi @danielduartemindera https://github.com/danielduartemindera , thank you for your contribution and PR. I've had a look at the change and this is very similar to PR #20 https://github.com/LogicAppUnit/TestingFramework/pull/20 which updates the code to use the Process scope instead of the Machine scope when retrieving the PATH environment variable. My understanding of how Machine, User and Process PATH environment variables work is based on this article https://adamtheautomator.com/powershell-environment-variables/ which says:

Environment variables in the process scope are a combination of the machine and user scopes, along with some variables that Windows creates dynamically.

So I beleive that PR #20 https://github.com/LogicAppUnit/TestingFramework/pull/20 will solve you problem because it is combining the Machine and User scopes by using the Process scope, which is essentially what you have implemented. However, I will approve both this PR and PR #20 https://github.com/LogicAppUnit/TestingFramework/pull/20 and resolve the conflicts because you have also corrected the typo in the enviromentPath variable name.

I'll be releasing version 1.7.0 of LogicAppUnit in a few weeks' time so I'll approve this PR and PR #20 https://github.com/LogicAppUnit/TestingFramework/pull/20 at the same time.

— Reply to this email directly, view it on GitHub https://github.com/LogicAppUnit/TestingFramework/pull/21#issuecomment-1625284463, or unsubscribe https://github.com/notifications/unsubscribe-auth/BBCVVQXRUAHT7OTPIOTQSPTXO7YO3ANCNFSM6AAAAAA2ACP3WE . You are receiving this because you were mentioned.Message ID: @.***>

mark-abrams commented 12 months ago

HI @danielduartemindera, I have uploaded LogicAppUnit v1.7.0 to Nuget. The new version combines the PATH environment variables for the Machine, Process and User scopes to locate the Functions runtime executable. This is an extension of the solution that you provided in this PR.