我正在使用Visual Studio 2015 Modeling SDK中的DSL工具开发DSL。
DSL工作正常。问题出现在我正在尝试编写一些单元测试来处理DSL生成的一些类。
我想创建DSL中包含的一些元素的实例,然后测试在它们上运行一些代码。
我有一个Feature
类,它是DSL的一部分。它是自动生成的,并且继承自ModelElement
(来自Modeling SDK)。我想创建它的一个实例并对其进行一些测试。它的构造函数需要一个Store
对象(同样来自Modeling SDK)。
我有以下内容:
using (var store = new Store())
using (var transaction = store.TransactionManager.BeginTransaction("create model"))
{
var rootFeature = new Feature(store);
// Do something with rootFeature...
}
然而这是在扔:
Microsoft.VisualStudio.Modeling.DomainDataNotFoundException:在目录中找不到具有标识DSL.Feature的域对象。
怎么回事?
答案 0 :(得分:1)
您在创建商店时遇到问题。您需要传入域模型类,如以下示例所示:
[TestMethod]
public void TestMethod1()
{
using (Store store = new Store(typeof(EntitiesModel3DomainModel)))
{
using (Transaction trans = store.TransactionManager.BeginTransaction())
{
Entity entity = new Entity(store);
Assert.IsNotNull(entity);
}
}
}
这里的EntitiesModel3DomainModel是我拥有的DSL的域模型。 您需要将它替换为您自己的类,由DomainModel.tt生成。