我知道在互联网上有几个关于这个问题的主题和帖子,我已经阅读过它们(不是每篇文章,我都要承认),但没有一个完全满足我.
我的情况:
我正在使用ODP.net(dll版本2.111.6.0)访问Oracle DB(版本10 + 11)和DataReader来检索数据(.NET 3.5,C#).
使用此代码会导致' System.OverflowException(算术运算导致溢出).
decimal.TryParse(oraReader.GetOracleDecimal(0).Value.ToString(),
NumberStyles.Any, null, out parsedOraDecimal)
Run Code Online (Sandbox Code Playgroud)
这一个导致值为' 3,0000000000000000000000000000000000000000000000000000000000000E-126 '
decimal.TryParse(oraReader.GetOracleValue(0).ToString(),
NumberStyles.Any, null, out parsedOraDecimal)
Run Code Online (Sandbox Code Playgroud)
现在我必须找到一些方法来正确检索和评估这个值 - 数据库也可以从我无法控制的其他应用程序中使用,因此无法进行更改.
将我的C#代码中的类型从'decimal'转换为'double'也不是一个真正的选择.
有任何想法吗?
首先,我是SpecFlow的新手.
我有一个功能文件,我已经/想要自动使用MSTest作为功能测试运行,涉及完全设置的服务器,数据访问......为此,我必须使用SpecFlow的'Given'中的数据配置服务器阻止并在之后启动它.我还必须将一些文件复制到测试的输出目录中.
在非SpecFlow功能测试中,我使用ClassInitialize属性从TestContext获取TestDeploymentDir; 这样的事情:
[ClassInitialize]
public static void ClassSetup(TestContext context)
{
TargetDataDeploymentRoot = context.TestDeploymentDir;
}
Run Code Online (Sandbox Code Playgroud)
现在有了SpecFlow,我不能再使用这个属性了,因为它被SpecFlow本身使用.确实存在一些新属性,例如BeforeFeature,它的行为类似但是它不会将TestContext作为参数传递.
我只需要访问TestContext的TestDeploymentDir,以便在真正推出我的功能测试服务器之前复制一些文件 - 没有SpecFlow就可以轻松实现,但使用SpecFlow几乎不可能.
如何处理这个问题?
有可能吗?
非常感谢您的建议!
罗伯特
环境: