Visual studio 阻止Visual Studio Web测试更改请求详细信息
我有一个为Analysis services接受Xmla查询的服务,通常这些查询本身会有一个字符串,其中包含一个类似Visual studio 阻止Visual Studio Web测试更改请求详细信息,visual-studio,testing,webtest,xmla,Visual Studio,Testing,Webtest,Xmla,我有一个为Analysis services接受Xmla查询的服务,通常这些查询本身会有一个字符串,其中包含一个类似 {{[Time].[Year].[All]}} 记录这些请求工作正常,但是当我尝试重新运行测试时,我从测试运行程序得到一个错误 请求失败:发生异常:WebTestContext中没有名为“[Time].[Year].[All]”的上下文参数 这让人困惑了一段时间,但当我要求VS生成测试的编码版本时,我能够更好地看到这个问题。VS搜索“{”和“}}”标记并进行更改,考虑到这些区域
{{[Time].[Year].[All]}}
记录这些请求工作正常,但是当我尝试重新运行测试时,我从测试运行程序得到一个错误
请求失败:发生异常:WebTestContext中没有名为“[Time].[Year].[All]”的上下文参数
这让人困惑了一段时间,但当我要求VS生成测试的编码版本时,我能够更好地看到这个问题。VS搜索“{”和“}}”标记并进行更改,考虑到这些区域要引用上下文参数,代码如下所示
this.Context["\n\t[Time].[Year].[All]"].ToString()
有人知道如何指示Visual Studio不执行此替换操作吗?还是解决这个问题的另一种方法?据我所知,上下文替换行为是自动的,不可控的,但有一些方法可以解决它:
- 生成编码测试,然后撤消Visual Studio所做的操作,例如,将
此.Context[“\n\t[Time].[Year].[All].]ToString()替换为
。但这有点可怕“{{[Time].[Year].[All]}”
- 将
字符串放入上下文参数,并使用该上下文参数而不是原始字符串。VisualStudio只应用一次上下文参数替换,因此它将保留结果字符串值{{[Time].[Year].[All]}
- 第三种可能是将所有xmla字符串
更改为{{[foo]}
,然后在测试执行过程中编写一个WebTestPlugin或WebTestRequestPlugin,将[[foo]]]]]
转换回[[foo]]]]
事件中的{[foo]}
。自动替换发生在预请求之前,因此这是一个安全的时间将它们放回花括号{[foo]}
- 生成编码测试,然后撤消Visual Studio所做的操作,例如,将
此.Context[“\n\t[Time].[Year].[All].]ToString()替换为
。但这有点可怕“{{[Time].[Year].[All]}”
- 将
字符串放入上下文参数,并使用该上下文参数而不是原始字符串。VisualStudio只应用一次上下文参数替换,因此它将保留结果字符串值{{[Time].[Year].[All]}
- 第三种可能是将所有xmla字符串
更改为{{[foo]}
,然后在测试执行过程中编写一个WebTestPlugin或WebTestRequestPlugin,将[[foo]]]]]
转换回[[foo]]]]
事件中的{[foo]}
。自动替换发生在预请求之前,因此这是一个安全的时间将它们放回花括号{[foo]}