2011-03-04 48 views
4

我正在使用从.csv文件读取的数据对我的测试用例进行参数化。 csv文件中的其中一列具有美国格式的简单日期值(如常规字符串),例如mm/dd/yyyy。当数据实际上被读取并填充到TestContext中时,TestContext.DataRow["MyDateColumn"]实际上会返回一个转换后的System.DateTime对象,其中包含时间戳12:00:00 AM。我绝对不需要或希望这种自动转换。我如何阻止这种情况发生?防止TestContext数据被自动转换

回答

2

如果MyDateColumn的类型设置为datetime,那么它应该返回一个datetime对象。

尝试更改MyDateColumn的类型为字符串,看看是否有这个窍门。

UPDATE

在CSV修改日期,使得它们是 “MM/DD/YYYY”,而不是为mm/dd/yyyy的。

+0

你是如何生成CSV的?用手?从Excel导出? – 2011-03-04 13:53:40

+0

数据如何读入testcontext? – 2011-03-04 13:59:19

+0

.csv是手动生成的,但如果需要,我们可以从Excel中导出。数据在.csv文件的后台自动读取:http://msdn.microsoft.com/en-us/library/ee624082.aspx – Satyajit 2011-03-04 14:15:02

0
DateTime.Parse(TestContext.DataRow["MyDateColumn"], CultureInfo.InvariantCulture).ToShortDateString() 
+0

谢谢。我已经知道如何将DateTime转换回字符串,事实上我目前正在使用这种方法。我实际上想知道如果我可以拥有原始字符串本身,而没有框架(不必要地)将其转换为我。 – Satyajit 2011-03-04 12:18:03

0

我得到这个解决方案:)

我只是把'实际数据之前。当我检索数据时,数据就是这样。在使用它之前,我使用substring方法从数据中删除'。

我记得在excel上使用这种技术使数字显示为文本。它为我工作。