Visual studio 阻止Visual Studio Web测试更改请求详细信息

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搜索“{”和“}}”标记并进行更改,考虑到这些区域

我有一个为Analysis services接受Xmla查询的服务,通常这些查询本身会有一个字符串,其中包含一个类似

{{[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]}”
    。但这有点可怕

  • {{[Time].[Year].[All]}
    字符串放入上下文参数,并使用该上下文参数而不是原始字符串。VisualStudio只应用一次上下文参数替换,因此它将保留结果字符串值

  • 第三种可能是将所有xmla字符串
    {{[foo]}
    更改为
    [[foo]]]]]
    ,然后在测试执行过程中编写一个WebTestPlugin或WebTestRequestPlugin,将
    [[foo]]]]
    转换回
    {[foo]}
    事件中的
    {[foo]}
    。自动替换发生在预请求之前,因此这是一个安全的时间将它们放回花括号


据我所知,上下文替换行为是自动的,不可控的,但有一些方法可以解决它:

  • 生成编码测试,然后撤消Visual Studio所做的操作,例如,将
    此.Context[“\n\t[Time].[Year].[All].]ToString()替换为
    “{{[Time].[Year].[All]}”
    。但这有点可怕

  • {{[Time].[Year].[All]}
    字符串放入上下文参数,并使用该上下文参数而不是原始字符串。VisualStudio只应用一次上下文参数替换,因此它将保留结果字符串值

  • 第三种可能是将所有xmla字符串
    {{[foo]}
    更改为
    [[foo]]]]]
    ,然后在测试执行过程中编写一个WebTestPlugin或WebTestRequestPlugin,将
    [[foo]]]]
    转换回
    {[foo]}
    事件中的
    {[foo]}
    。自动替换发生在预请求之前,因此这是一个安全的时间将它们放回花括号


使用双大括号,例如“{}}”是多余的。您只需要使用一组大括号,例如“{}”,或者如果生成此代码,它还将处理大括号集之间的空格,例如“{}”

使用双大括号,例如“{}”是多余的。您只需要使用一组大括号,例如“{}”,或者如果生成了此代码,它还将处理大括号之间的空格,例如“{}”