我在运行单元测试时遇到错误.如果我调试单元测试vstest.executionengine.x86.exe运行,则在测试通过时关闭.
如果我只是运行测试(即使测试就像创建一个新列表一样简单,没有断言)vstest.executionengine.x86.exe不会关闭并保持在任务管理器中运行.
在编写更复杂的测试(包括删除文件/清理sqllite数据库)时,这对我来说是一个问题.
任何帮助,将不胜感激.
编辑:
重现步骤 :
是否可以直接向订阅队列发送消息?
场景:
消息失败,丢失到deadletter,消息已经使用defer手动获取,克隆并需要发送到它首先被破坏的队列,但不是主题.
我可以直接向订阅者发送消息吗?
我考虑过为每个订阅者创建一个单独的重试队列,其中处理服务也将接收来自但我不想这样做的消息.
是否可以单独测试FluentValidation PropertyValidator?
我知道我可以测试使用PropertyValidator特定错误的Validator,但是如果可能的话,我宁愿在属性验证器上测试true/false.
可以这样做吗?如果是这样,怎么样?
我的同事问我是否给出了订单线示例,可以初始化一个看起来像这样的viewmodel:
OrderViewModel
string OrderId
string CustomerName
List<OrderLineViewModel> OrderLines
OrderLineViewModel
string ProductName
string ROI
int Quantity
Run Code Online (Sandbox Code Playgroud)
从索引?
我已尝试进行成功加载客户名称的转换,但无法从订单行获取相关的产品信息.这可以通过转换完成,还是需要从索引字段进行投影?
干杯,
詹姆士
编辑:
我们正在尝试直接从查询中填充视图模型.我们尝试了以下索引:
public class OrdersViewIndex : AbstractIndexCreationTask<Order>
{
Map = orders => from order in orders
select new {
OrderId = order.id
};
Transform = (database, orders) => from order in orders
let customer = database.Load<Customer>(order.customerId)
select new {
OrderId = order.id,
CustomerName = customer.Name,
OrderLines = // This is where I struggled to answer my colleagues questions as …Run Code Online (Sandbox Code Playgroud) 我有一个类似如下的文档结构:
Employer => Positions => RequiredSkills
雇主有一个职位
定位集合有一个RequiredSkill集合.
所需技能包括技能(字符串)和熟练程度(枚举).
如果我使用动态索引,它似乎返回公司,但我想使用索引来填充MVC视图模型以返回到UI.
我是Raven的新手,所以我为做任何愚蠢/不必要的事而道歉!
我有以下映射:
public class PositionSearch : AbstractIndexCreationTask<Employer>
{
public PositionSearch()
{
Map = employers =>
from employer in employers
from position in employer.Positions
select new
{
EmployerId = employer.Id,
EmployerName = employer.Name,
PositionId = position.Id,
PositionTitle = position.Title,
position.Location,
position.Description,
RequiredSkills = position.RequiredSkills
};
StoreAllFields(FieldStorage.Yes);
Index("RequiredSkills_Skill", FieldIndexing.Analyzed);
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我尝试执行以下查询时:
var results = session.Query<PositionSearchResultModel, PositionSearch>()
.Customize(x => x.WaitForNonStaleResults())
.Where(x=>x.RequiredSkills.Any(y=>y.Skill == "SkillName"))
.ProjectFromIndexFieldsInto<PositionSearchResultModel>()
.ToList();
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
System.ArgumentException:
The field 'RequiredSkills_Skill' is not …Run Code Online (Sandbox Code Playgroud) 我到处寻找这方面的信息,但似乎找不到我要找的东西。
我有一个天蓝色的主题,一个订阅。
订阅的处理程序失败了一些消息,它们已被放入死信队列。
我可以访问这些消息,但我不知道如何恢复它们。
我不想创建消息的副本并将其发送到主题。我特别想把它移到它来自的订阅队列中。
有没有办法做到这一点?
我搜索了很多地方,仍然无法找到我正在寻找的答案.
我正在使用NHibernate 3.2 - 按代码映射
我有以下映射文件:
public class ParentMapping: EntityMapping<Parent>
{
public ParentMapping()
{
Set(x => x.Children, map =>
{
map.Cascade(Cascade.All);
map.Inverse(true);
}, r => r.OneToMany());
}
}
public class ChildMapping: JoinedSubclassMapping<Child> // This is a subclass of something else.
{
public RequiredSkillMapping()
{
ManyToOne(x => x.Parent, map => { map.NotNullable(true); });
}
}
Run Code Online (Sandbox Code Playgroud)
级联保存工作正常.
session.Save(parent) will save the children and associate them correctly.
Run Code Online (Sandbox Code Playgroud)
当我试着打电话时:
var parent = session.Get<Parent>(1);
parent.Children.Clear();
session.Save(parent); or session.SaveOrUpdate(parent) or session.Update(parent)
Run Code Online (Sandbox Code Playgroud)
实体保持与父母相关联.
我通过调用它来工作:
foreach(var child in …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习如何使用 TPL。我已经对这个主题进行了大量阅读,但我不明白为什么以下代码示例会中断,而之后的代码示例会中断?
我有一个单元测试正在运行以计算写入的记录,并读取输出的文件以进行仔细检查。
失败:
var tasks = new List<Task>();
Parallel.ForEach(File.ReadLines(featuresLocation), s =>
{
var feature = CreateFeature(s);
if (feature.HasValue)
{
tasks.Add(Task.Factory.StartNew(() =>
{
lock (_locker)
{
featuresWriter.WriteLine(feature.Value);
RecordsWrote++;
}
}));
}
});
Task.WaitAll(tasks.ToArray()); // Breaks
Run Code Online (Sandbox Code Playgroud)
在职的:
var tasks = new List<Task>();
Parallel.ForEach(File.ReadLines(featuresLocation), s =>
{
var feature = CreateFeature(s);
if (feature.HasValue)
{
tasks.Add(Task.Factory.StartNew(() =>
{
lock (_locker)
{
featuresWriter.WriteLine(feature.Value);
RecordsWrote++;
}
}));
}
});
Task.WaitAll(tasks.Where(x => x != null).ToArray()); // Works
Run Code Online (Sandbox Code Playgroud) 我到处寻找,我似乎无法找到答案,也许是因为我不知道该怎么搜索.
我使用了Get-PluralizedWord函数.
是否有类似的方法将像MyClass这样的给定单词转换为powershell/T4Templates中的myClass?
干杯,
詹姆士
我一直在努力解决这个问题.
我有一个客户端对象(clients/513),如下所示:
{
"Risks": [
{
"Id": "421eacf0-14e9-4004-ab0b-95d20e976aac",
"RiskFactor": "ElectricalEquipment",
"Description": "Should be allowed to play with electronics."
},
{
"Id": "4bbecbe2-acfc-45c3-b87a-3321e1eca95a",
"RiskFactor": "ViolenceToStaffVerbal",
"Description": "Tourettes"
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个包含以下代码的索引:
地图
from c in docs.Clients
from r in c.Risks
select new { ClientId = c.Id, RiskId = r.Id }
Run Code Online (Sandbox Code Playgroud)
转变
from c in results
from r in c.Risks
select new { ClientId = c.Id, RiskId = r.Id }
Run Code Online (Sandbox Code Playgroud)
我认为我理解MAP只是定义了您希望能够搜索的属性.并且TRANSFORM以特定形状返回实际数据.
我想要返回ClientId,RiskId以及其他一些与风险相关的属性,这样我才能做到.As<ViewModel>(),但是当我执行查询时,我似乎得到了一些不一致的结果.(它喜欢改变它返回的结果数量,具体取决于我执行查询的次数,有时是4次,有时是5次).
另外:RiskId过滤似乎返回一个,有时返回多个Risk,id不是指定的Id.
任何帮助将非常感激.
ravendb ×3
azure ×2
c# ×2
indexing ×2
servicebus ×2
cascade ×1
nhibernate ×1
powershell ×1
task ×1
testing ×1
unit-testing ×1
validation ×1