问题:进行单元测试时,我的DAL程序集中引用的SQLite程序集不会被复制到输出文件夹(Copy local设置为true).
我正在使用VS2008中的.Net 3.5应用程序,在我的DAL中使用NHibernate和SQLite.数据访问通过IRepository接口(存储库工厂)公开给其他层,因此不需要引用其他层中NHibernate的System.Data.SQLite程序集.
对于单元测试,有一个公共工厂方法(也在我的DAL中),它创建一个内存中的SQLite会话并创建一个新的IRepository实现.这样做也是为了避免为需要它的所有程序集提供共享的SQLite内存配置,并避免引用这些DAL内部程序集.
问题是当我运行单独项目的单元测试时 - 如果我不添加System.Data.SQLite作为单元测试项目的引用,它不会被复制到TestResults ...\Out文件夹(虽然这个项目引用了我的引用的DAL项目,System.Data.SQLite其Copy本地属性设置为true),因此在配置NHibernate时测试失败.如果我添加对我的测试项目的引用,那么它会被复制并且单元测试工作.
我究竟做错了什么?
[更新]
看来我在这里找到了答案:TFS UnitTesting在构建服务器上没有部署本地副本程序集来测试目录.如果我在DAL中的某个静态方法中添加对该类型的引用,那么当我在测试中引用DAL程序集时,它将自动复制.这似乎是一个黑客,但恕我直言是一个更清洁的解决方案,而不是单独的脚本,因为它创建一个"真正的"依赖.
看来,如果我添加了SQLite的组件作为一个额外的部署项目到我的测试运行配置(LocalTestRun.testrunconfig文件)也被复制.
谢谢你的快速解答!
SQLite和googletest带有一个非常易于使用的单文件版本,这使得在其他项目中使用它变得轻而易举,因为您只需要添加一个源文件.他们都使用home-brew工具来创建组合的源文件,所以我想知道是否有更通用的工具呢?它应该采用一个实现/头文件列表并吐出一个组合的头/源,并修复本地包含.我很好,如果它不处理条件包含/包括不同的#defines像Boost.Tuple/MPL之前使用它们.典型的目标库就像ICU.
更新:好的,我没有制定好的Q来回答.我仍然在-07:00 UTC和我在+ 02:00 UTC时遇到heroku.
问:如何使用正确的Time.zone编写日志?
9个小时的差异,heroku(美国西部) - 挪威,让人分心.我在我的production.log(使用heroku logs)中得到了这个:
处理ProductionController #create to xml(2010-04-28 23:00:12为81.26.51.35)[POST]
我如何写它2010-04-29 08:00:12 +02:00 GMT?
请注意,我正在heroku运行,无法自己设置服务器时间,就像您在亚马逊EC2服务器上所做的那样.下面是我之前的问题,我会留下它,因为它包含一些有关时间和区域的有趣信息.
Time.now当我在我的设置另一个时区时,为什么会产生服务器本地时间environment.rb
config.time_zone = 'Copenhagen'
Run Code Online (Sandbox Code Playgroud)
我把它放在一个视野中
<p> Time.zone <%= Time.zone %> </p>
<p> Time.now <%= Time.now %> </p>
<p> Time.now.utc <%= Time.now.utc %> </p>
<p> Time.zone.now <%= Time.zone.now %> </p>
<p> Time.zone.today <%= Time.zone.today %> </p>
Run Code Online (Sandbox Code Playgroud)
在heroku上的应用程序中呈现此结果
Time.zone(格林尼治标准时间+01:00)哥本哈根
Time.now Mon Apr 26 08:28:21 -0700 2010
Time.now.utc Mon Apr 26 15:28:21 …
我正在尝试在驱动器C中创建一个目录:(在win7目标机器上),Directory.CreateDirectory但到目前为止还没有运气.
我相信问题必须与权限安全做点什么......所以我在这里..
如何在驱动器C中创建目录?
mysql_connect("localhost","root","");
mysql_select_db("hitnrunf_db");
$result=mysql_query("select * from jos_users INTO OUTFILE 'users.csv' FIELDS ESCAPED BY '""' TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\n' ");
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=your_desired_name.xls");
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
Run Code Online (Sandbox Code Playgroud)
在上面的代码中查询字符串即字符串在mysql_quey中
我们得到了以下错误
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\samples\mysql_excel\exel_outfile.php on line 8
Run Code Online (Sandbox Code Playgroud)
在查询字符串'\n'中,charter未标识为字符串,这就是上面出错的原因
我需要通过URL创建新闻简报.我要做下一个:
但是我对路径有些麻烦.所有元素的来源都是相对的(/img/welcome.png),但我需要绝对(http://www.mysite.com/img/welcome.png).
我怎样才能做到这一点?
最好的问候,Alex.
我怎么能得到
域名\帐户
作为.NET Framework的字符串?
我有关于'新'运算符的简单任务.我需要创建10个字符的数组,然后使用'cin'输入这些字符.应该看起来像这样吗?:
char c = new char[10];
for(int i=0; i < 10; i++)
{
cin >> char[i] >> endl;
}
Run Code Online (Sandbox Code Playgroud) 我知道这很简单,但我不知道.
我在gsp文件中使用了println,并期望在控制台中打印输出.但这在页面上显示.
<%
for(int i =0; i < threads.size();i++) {
println i
}
%>
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有一个 .app 文件和临时配置文件,当我用来编译它并通过 XCODE 安装在 iphone 中时,它也包含在创建此临时配置文件时受限制的设备,然后它在 iphone 中成功运行,没有任何问题此临时配置文件。但是,当我从 iphone 中删除所有临时文件和应用程序文件并选择应用程序文件和临时文件并通过窗口系统通过 iTunes 安装它时,它会向我显示代码签名错误,即使我通过 iTunes 同步 iphone,它也会安装临时在 iphone 中但无法安装应用程序文件。
是否有任何正确的方法可以将它安装在窗口或任何其他操作系统上而不会出现任何失败或任何教程..
谢谢