我正在尝试设置一个模板来创建一个单元测试类,其中包含一些基本结构和默认的using语句。我已经创建了一个VS2010自定义模板来执行此操作,几乎所有内容都能正常工作。
我遇到的问题是我试图在using语句中引用我的项目的基本命名空间,并且我无法确定是否有一个参数可以让我这样做。
我想要的一个例子,假设我的项目名为MyProduct.Test:
using NUnit.Framework;
using MyProduct.Test.Base;
namespace MyProduct.Test.BLL.Services.MyService
{
[TestFixture]
public class MyServiceTest : TestBase
{
[SetUp]
public void Setup()
etc...
我可以使用以下模板生成除using MyProduct.Test.Base
以外的所有内容:
using NUnit.Framework;
using $safeprojectname$.Base;
namespace $rootnamespace$
{
[TestFixture]
public class $safeitemname$ : TestBase
{
[SetUp]
public void Setup()
etc...
不幸的是,$ safeprojectname $仅适用于Project模板,而不适用于Item模板。
此模板产生以下输出:
using NUnit.Framework;
using $safeprojectname$.Base;
namespace MyProduct.Test.BLL.Services.MyService
{
[TestFixture]
public class MyServiceTest : TestBase
{
[SetUp]
public void Setup()
etc...
有没有办法让我获得项目的实际根命名空间(因为$ rootnamespace $实际上输出了根据其位置添加的文件的命名空间)?
注意:显然我可以将其设置为适用于一个项目,但是拥有适用于所有项目的模板会更有用。