# Adding settings to the testplan

**URL:** <https://forum.opentap.io/t/adding-settings-to-the-testplan/2575>\
**Category:** General\
**Tags:** plugin, opentap-sdk\
**Created:** [October 1, 2025, 8:46am UTC](https://forum.opentap.io/t/adding-settings-to-the-testplan/2575 "2025-10-01T08:46:06Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![mavo1](https://avatars.discourse-cdn.com/v4/letter/m/b782af/32.png) [@mavo1](https://forum.opentap.io/u/mavo1)\
**Post date:** [October 1, 2025, 8:46am UTC](https://forum.opentap.io/t/adding-settings-to-the-testplan/2575/1 "2025-10-01T08:46:06Z")

</div>

Hello everyone,

how can I add settings to the testplan so they are generally available then in the editor? I want them to be like for example a field like the testplan name or the description. I saw that it was possible to do it, because the Runner package also adds a new field there called Capabilities. I could not figure out though how this could work.

---

<div class="post-metadata">

**Author:** ![rolf\_madsen](https://avatars.discourse-cdn.com/v4/letter/r/43a26b/32.png) [@rolf\_madsen](https://forum.opentap.io/u/rolf_madsen)\
**Post date:** [October 1, 2025, 7:37pm UTC](https://forum.opentap.io/t/adding-settings-to-the-testplan/2575/2 "2025-10-01T19:37:55Z")

</div>

Hi @mavo1,

There are a few different ways you could do this.

In Runner it is done using a custom “IStackedTypeDataProvider”. In essence what it does is creating a new virtual type that wraps the regular TestPlan type and adds additional members.

There is an example of that in the SDK Examples: [opentap/sdk/Examples/PluginDevelopment/Advanced Examples/AttachedPropertyExample.cs at main · opentap/opentap · GitHub](https://github.com/opentap/opentap/blob/main/sdk/Examples/PluginDevelopment/Advanced%20Examples/AttachedPropertyExample.cs)

However, I would probably recommend creating a mixin for it instead. That is a bit easier provided that you are ok with the user having to manually add it.

You can read about mixins in the developer guide: [Test Step | OpenTAP](https://doc.opentap.io/Developer%20Guide/Test%20Step/Readme.html#mixins)

You could also do a hybrid approach where you don’t build type wrapper but just use the ITypeDataProvider as a place to programatically inject the mixin into test plans that does not already have it.

---

<div class="post-metadata">

**Author:** ![mavo1](https://avatars.discourse-cdn.com/v4/letter/m/b782af/32.png) [@mavo1](https://forum.opentap.io/u/mavo1)\
**Post date:** [October 13, 2025, 11:57am UTC](https://forum.opentap.io/t/adding-settings-to-the-testplan/2575/3 "2025-10-13T11:57:09Z")

</div>

Thanks a lot for your answer. I got it to work with the IStackedTypeDataProvider now. I needed it to be there by default instead of added by the user, which is why unfortunately I couldnt use mixins for this case.
