Can we get Opened TapPlan path inside a Test step?

Hi Team,

We have a Property inside a Test Step called ProfileLocation.

While Opening a tapplan can we get current tapplan path

 /// <summary>
        /// Gets or sets Profile location.
        /// </summary>
        [Browsable(false)]
        public string Profilelocation
        {
            get => this.profilelocation; set
            {
                this.profilelocation = value;
                if (!this.isProfileSaving)
                {

                    var profLocat= Path.GetDirectoryName(GetCurrentTestPlanPath()) + this.profilelocation;
                }
            }
        }

Please suggest

Regards
Jestin CI

This should work:
string testPlanPath = GetParent<TestPlan>()?.Path;

2 Likes

Hi @david-wsd ,

Mentioned function works after loading the TapPlan,.

While loading the tapplan GetParent is null.

Is there any way to get path while loading the TapPlan.

I Tried Task.Run() and wait until Parent get filled, it works.
but we need to get in between loading the tapplan.

Tried some reflection methods, but I understand like TestPlanPath gets filled only after loading completes.

Hi @david-wsd ,

I changed the logic and I created a TapPlan loaded function using GetParent method and I called my function there. Thanks for the suggestion.

3 Likes

Hi @david-wsd ,

On further testing I understand this way does not work.

If we try to get path in separate thread, in mean time all the test steps will be loaded, and some of test step using Profile settings will display error like “Instrument not found”.

So need to get the Plan path before loading the plan,

Immediatley like after OpenFileDialog is closed.

Regards
Jestin CI

Hi @justin_c_i, this seems to reliably display the test plan path right after opening a test plan. I’m not sure the exact details of what you need to do, but hopefully this might help.

        [Display("Test Plan Path")]
        [Browsable(true)]
        public string TestPlanPath
        {
            get
            {
                return GetParent<TestPlan>()?.Path;
            }
        }
1 Like

I do see that GetParent<TestPlan>() returns null when called from a test step’s constructor. Maybe that is part of what you’re facing.

Hi @david-wsd ,

I am trying to access GetParent in the set of another property. it returns null.