是否可以从NEST客户端获取原始搜索查询?
var result = client.Search<SomeType>(s => s
.AllIndices()
.Type("SomeIndex")
.Query(query => query
.Bool(boolQuery => BooleanQuery(searchRequest, mustMatchQueries)))
);
Run Code Online (Sandbox Code Playgroud)
我真的很想调试为什么我会得到一定的结果.
我有一个存储库,我的开发分支受到保护,我正在使用GitFlow分支模型.有两个分支; 开发(包含当前正在开发的功能)和master(最新部署的生产代码).
我的开发分支阻止通过GitHub的Protected分支直接进行提交.当您使用GitFlow在本地完成修补程序时,它会自动将修补程序分支合并到您的本地主服务器并开发分支.但是,不允许直接在开发分支上推送更改,因为这是受保护的分支
你怎么能克服这个?每当我创建一个修补程序时,我必须:
这不是自动化的,因此,不是真的可以接受.
我不得不在git中恢复到我的主分支中的先前提交,这意味着我必须强制将更改推送到Teamcity.
好像Teamcity已陷入绑定状态,它认为任何新触发的构建实际上构建了一个旧版本的项目(这是正确的,我从Build Number 750恢复到747)
运行构建时,它显示:

当我查看历史时它看起来像这样(我恢复后的所有构建都是灰色的)

有什么办法可以让Teamcity认为我正在构建最新版本吗?也许清除日志或类似的东西?
有没有办法在提交消息中推送包含param的提交,例如"--nobuild",它会禁用在TeamCity中构建项目?
我已经注意到在截取教程中你可以定位一个方法并拦截它.即
Kernel.Bind<Foo>().ToSelf();
Kernel.InterceptReplace<Foo>(foo => foo.ThrowsAnError(), invocation => {} );
Run Code Online (Sandbox Code Playgroud)
文档/教程没有介绍在您尝试拦截的方法具有参数的实例中要执行的操作,即ThrowsAnError是否接受字符串作为参数.
Kernel.Bind<Foo>().ToSelf();
Kernel.InterceptReplace<Foo>(foo => foo.ThrowsAnError(**param goes here**), invocation => {} );
Run Code Online (Sandbox Code Playgroud)
在绑定时我无法访问params,所以我想知道我是否会以错误的方式进行此操作?
编辑
c# dependency-injection ninject ninject-extensions ninject-interception
当单元测试失败时,是否可以停止TeamCity构建(整个构建,即它不会执行后续步骤)?理想情况下,我也希望它能够终止当前正在执行的步骤,在我的情况下,这将是Nunit Test Runner.在我的情况下,如果单个单元测试失败,继续构建是没有意义的.我已经查看了失败条件,但我不认为它们适用于构建继续运行.
要求的功能:http://youtrack.jetbrains.com/issue/YTF-3275
是否可以使用Ninject将依赖项注入WebApiConfig类?
这是我的WebApiConfig类.
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Services.Replace(typeof(IExceptionHandler), new ErrorHandlerMessageHandler(*NEEDS DEPENDENCY*));
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的NinjectHttpApplication声明
public class WebApiApplication : NinjectHttpApplication
{
protected override void OnApplicationStarted()
{
base.OnApplicationStarted();
GlobalConfiguration.Configure(WebApiConfig.Register);
}
protected override IKernel CreateKernel()
{
var kernel = new StandardKernel();
RegisterServices(kernel);
GlobalConfiguration.Configuration.DependencyResolver = new NinjectDependencyResolver(kernel);
return kernel;
}
private void RegisterServices(IKernel kernel)
{
//bindings
}
}
Run Code Online (Sandbox Code Playgroud) 我在这个例子中使用AutoFixture来实现包含Mongo ObjectId的对象,就像这样
Fixture fixture = new Fixture();
fixture.Register(ObjectId.GenerateNewId);
Run Code Online (Sandbox Code Playgroud)
但我每次测试都会这样做.是否有可能以某种方式为所有测试注册这个全球?
为了论证,如果你已经配置了3个构建步骤并且想要单独重新运行第3步(不运行前2个步骤),你将如何实现这一目标?
Mongodump文档指定您可以使用特定查询进行转储
即
mongodump --host localhost --db mydb --collection testCollection --query "{SomeKey: 'some value'}"
Run Code Online (Sandbox Code Playgroud)
我将_ids字段存储为BinData,是否可以对此进行查询?
我试过了
mongodump --host localhost --db mydb --collection testCollection --query "{_id: 'BinData(3,ryBRQ+Px0kGRsZofJhHgqg==)'}"
Run Code Online (Sandbox Code Playgroud)
没有运气.