在使用rake运行单元和功能测试时,在rails应用程序中,我注意到在命令行上指定了种子值: - seed x
$ rake test
(in /code/blah)
Loaded suite /../ruby-1.9.2-p180/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
.
Finished in 0.12345 seconds.
1 tests, 1 assertions, 0 failures, 0 errors, 0 skips
Test run options: --seed 20290
Run Code Online (Sandbox Code Playgroud)
我假设可以在测试中使用此值,但我无法弄清楚如何.我试过Google,Rails Guides等.但似乎无法找到答案.
编辑:
这个种子值是否可以被Minitest用来随机化测试的执行顺序?
我知道不可能从泛型类型参数继承,但是在为抽象类型的衍生物实现公共代理时它会很方便:-)
有谁知道为什么这是不可能的?
示例C#:
abstract class Foo
{
public virtual void Bar()
{
// nop
}
}
class FooProxy<TFoo> : TFoo
where TFoo : Foo
{
public override void Bar()
{
// do some stuff before
base.Bar();
// do some stuff after
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:一些代码来说明如何使用它的示例.考虑以下Foo的衍生物:
class FooX : Foo
{
public string X { get; set; }
public override void Bar()
{
Console.WriteLine("Doing Bar X");
}
}
class FooY : Foo
{
public string Y { get; set; }
public override …Run Code Online (Sandbox Code Playgroud) 运行SQLCMD.exe并为脚本变量提供命令行参数时,我希望命令行上提供的值将覆盖SQL脚本文件中定义的值.
例如
给出以下SQL脚本:
:setvar XXX "SQL script"
print '$(XXX)'
Run Code Online (Sandbox Code Playgroud)
和命令行:
sqlcmd.exe -S <Server> -d <Database> -E -b -i <Script> -v XXX="Batch script"
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
批处理脚本
但输出是:
SQL脚本
这是意图,还是必须:setvar删除SQL脚本中的语句?
我:setvar在脚本中提供了语句,因此我可以使用SQLCMD模式在SQL Management Studio中编辑/测试脚本,但是在我的测试和生产环境中从命令行运行脚本.
我正在使用NHibernate主要针对MSSQL数据库,我在那里使用MSSQL模式用于各种表.
在我的NH映射(HBM)文件中,我已为映射中的每个表指定了模式,如下所示:
<?xml version="1.0"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
auto-import="true"
schema="xyz"> <!-- schema specified -->
<class name="Customer">
<id name="Id">
<generator class="native" />
</id>
<property name="Name" />
</class>
</hibernate-mapping>
Run Code Online (Sandbox Code Playgroud)
对于我的单元测试,我一直在尝试SQLite,但是我的映射现在失败了,因为NH报告无法找到数据库"xyz".
我理解模式的解释存在差异,那么NH的解释/实现是什么,使用模式时最好的方法是什么?
顺便说一句:使用像"nhibernate数据库模式"这样的关键字搜索网络并没有产生任何相关的东西.
c# ×1
generics ×1
mapping ×1
nhibernate ×1
rake ×1
rake-test ×1
schema ×1
sql-server ×1
sqlcmd ×1