我们的团队拥有Visual Studio 2012 Professional许可证(不是Test Professional).我们正在开发一个小型的Web应用程序,我们有真正的单元测试,可以模拟所需的一切,并测试数据层.每类数据层测试都从头开始创建整个数据库,并使用一组准备好的测试数据填充它,因此运行它们需要很长时间.结果,我们不愿意做"全部运行",我们的单元测试(快速)只是很少使用.
我们正在寻找一种低摩擦力的解决方案,它允许我们经常进行2-3次点击(类似于现有的全部运行)的所有快速测试,并在需要时轻松运行所有测试.
我们尝试仅制作快速测试的播放列表.但是我们已经完成了对数据层的编程,因此几乎我们编写的所有新测试都是快速测试,并且将每个测试添加到播放列表都很烦人且容易出错.我们更喜欢一种方法,我们以某种方式将我们不想要的测试标记为"快速运行",并自动运行解决方案中的所有其他测试.请注意,我们不希望将慢性测试永久添加Ignore属性,因为我们仍希望每天至少运行一次.
Linq新手在这里,通过查询与我的第一组挣扎.
我有一个KeywordInstance类型的对象列表,它表示一个关键字,以及应用该关键字的数据库记录的ID.
Keyword RecordID
macrophages 1
macrophages 2
cell cycle 3
map kinase 2
cell cycle 1
Run Code Online (Sandbox Code Playgroud)
我想要的是所有关键字的集合,以及应用每个关键字的RecordID列表
Keyword RecordIDs
macrophages 1, 2
cell cycle 1, 3
map kinase 2
Run Code Online (Sandbox Code Playgroud)
我尝试使用Linq将其转换为新对象.我只设法获得了不同的关键字.
var keywords = allWords .GroupBy(w => w.keyword).Select(g => new {keyword = g.Key});
问题是我似乎无法以任何方式获得g的值.g是IGrouping类型,根据文档,它只有属性Key,但甚至没有属性Value.我在互联网上看到的所有关于groupby的例子只是告诉我选择g本身,但结果是
var keywords = allWords
.GroupBy(w => w.keyword)
.Select(g => new {keyword = g.Key, RecordIDs = g});
Run Code Online (Sandbox Code Playgroud)
不是我想要的.
任何尝试从g获取的东西都会失败并显示错误消息System.Linq.IGropuing<string, UserQuery.KeywordInstance> does not have a definition for [whatever I tried]
.
我在这做错了什么?
我需要一个数据结构,这是一种特殊类型的队列.我想要的是,如果我的队列的一个实例曾经包含一个对象X,那么在这个实例中不应该再次将X排队.如果使用X调用,则排队方法应该不执行任何操作,例如尝试向HashSet添加重复值.
用法示例:
MyQueue<int> queue = new MyQueue<int>();
queue.Enqueue(5);
queue.Enqueue(17);
queue.Enqueue(28);
queue.Enqueue(17);
int firstNumber = queue.Dequeue();
queue.Enqueue(5);
queue.Enqueue(3);
List<int> queueContents = queue.ToList(); //this list should contain {17, 28, 3}
Run Code Online (Sandbox Code Playgroud)
我在MSDN上环顾四周,但找不到这样的课程.它存在,还是我必须自己实现?
我想我也可以使用不同的数据结构,但访问将始终是FIFO,所以我认为队列将是最有效的.此外,我不知道任何其他结构提供这种"实例生命周期的唯一性"功能.
我有一个结构,div设置为显示像表元素.这是一个输入表单,我希望左列(字段标签所在的位置)为50%宽,加上2 em,因此星号可以适合所需的字段,右列(字段所在的位置)可以占用剩下的空间.
我试着calc
用来设置宽度.但至少在我最新的Chrome中,列会获得一些任意宽度,即使检查元素显示规则存在且处于活动状态.可能是什么问题呢?calc与display不兼容:table-cell?或者我在某个地方犯了错误?
这是HTML
<div class="mock-table">
<div class="entryRow">
<div class="mock-td nested-label-column">
<label class="entryFieldLabel" for="Mutations_0__GeneSpecies">Gene donor</label>
</div>
<div class="mock-td nested-field-column">
<select class="SpeciesList SpeciesListGene entryField" data-val="False" data-val-dropdown="False" data-val-number="False" id="SpeciesListGene_8449" name="Mutations[0].GeneSpecies.Value">
<option value="2">Black rat</option>
<option value="61">Cat</option>
<option value="4">Cattle</option>
</select>
<button class="addNewSpecies flatButtonSecondary" type="button" value="A_8449" id="GeneSpeciesList_8449">add other species</button>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
和它的CSS
.dialog-label-column, .nested-label-column {
width: calc(50% + 2em);
}
.dialog-field-column, .nested-field-column {
width: calc(50% - 2em);
}
.entryRow {
overflow: hidden;
display: table-row;
width: 100%;
}
div.mock-td {
display: table-cell;
vertical-align: top; …
Run Code Online (Sandbox Code Playgroud) 我有一个水平导航,该导航有些长,需要重新排列以适合狭窄的显示。我使用flexbox使它重排为多行。
但是对于很多行,导航项之间的划分不是很明显。我尝试给它们在顶部添加一个边框,这有点奏效-但是,当然,该边框仅在各个导航选项上可见,而在所有flexbox行之间都没有创建漂亮的分界线。
请查看摘要的整个页面,在帖子中查看时出现显示问题。或使用这个小提琴。您可能需要使浏览器窗口变窄才能看到多行导航。
header {
height: 3em;
background-color: #fff;
}
#main {
height: 9em;
background-color: #5987d1;
}
footer {
height: 3em;
background-color: #a8a8a8;
border-top: 1px solid #0047b9;
}
ul.horizontal-nav {
background: rgba(72, 72, 72, 1);
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-direction: row;
flex-direction: row;
align-items: center;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
-webkit-box-shadow: 0px 2px 1px 0px rgba(0,0,0,0.75);
-moz-box-shadow: 0px 2px 1px 0px rgba(0,0,0,0.75);
box-shadow: 0px 2px 1px 0px rgba(0,0,0,0.75);
list-style: none;
}
li.NavigationLi2, li.selected-branch-root {
padding: …
Run Code Online (Sandbox Code Playgroud)我很困惑.在通常的快捷键昨天工作时,我启程回国.今天我启动了计算机,打开了项目,在编写一行代码之前,想要崩溃到aspx文件中的定义.它不起作用,状态栏显示消息
组合键(Ctrl + M,Ctrl + O)绑定到当前不可用的命令(折叠到定义)
我处于正常编辑模式,而不是调试.相同的组合适用于.cs文件,但已停止处理.aspx文件.我在互联网上发现有关更新到新插件版本时遇到同样问题的帖子,但我没有提到插件.我试图改变设计视图并返回,但这并没有改变任何东西.
我如何得到我的概述?
我尝试使用 W3C RDF 验证器在线验证一个非常简单的手动编写的 RDF。令我惊讶的是,它正确地解析了来自 rdf 命名空间的 URI,而不是来自不同的命名空间(也来自 W3C)。为什么会这样?
让我们举个例子
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:org="http://www.w3.org/ns/org#" >
<rdf:Description rdf:about="https://stackexchange.com/">
<rdf:type rdf:resource="org:Organization"/>
</rdf:Description>
</rdf:RDF>
Run Code Online (Sandbox Code Playgroud)
如您所见,谓词 (rdf:type) 得到了很好的扩展,您可以单击它。对象 (org:Organization) 根本没有展开,而且当我尝试单击链接时,它实际上将“org:Organization”发送到浏览器,从而产生错误。但是命名空间 org 已经像 rdf 命名空间一样被定义了,如果我手动访问http://www.w3.org/ns/org#Organization,我会得到一个 Turtle 文档。
所以,我的问题是:为什么不将http://www.w3.org/ns/org#Organization放在对象中?为了让解析器正确执行,我应该更改什么?
在编写ORM代码之前,我使用一些测试数据手动填充数据库表.对于具有1:N关系的两个表,首先在一个表中填充一行,然后填充下一个表中的所有相关行将是方便的.例如,如果我有一个由多篇文章组成的杂志,我会在杂志表格中输入一行,在文章表格中输入所有文章,然后才开始下一本杂志.
问题是我的自动递增ID仅在关闭表时在数据库中创建.因此,在我填充杂志表中的行后,我可以猜出它的ID,但如果我尝试在文章中输入一行,我就不能使用猜测的ID作为外键,因为数据库注意到它还不存在.在我可以输入文章之前,我必须在每个杂志之后关闭杂志表,然后重新打开它用于下一个杂志.
有没有更简单的方法,可能是某种我找不到的提交按钮?
请注意,这与如何在Visual Studio 2012 Web Express中提交数据库表更改的问题不同?.我想保存表数据,而不是表设计.
我需要比标准浏览器渲染更多的按钮,因为我不是设计师,我想我会使用现有的解决方案.所以,我去了一个我在互联网上找到的按钮制造商,它让我看起来很棒.我复制了CSS,我自己的按钮在我的浏览器中看起来有所不同.在Inspect Element上,CSS是相同的.
他们的按钮看起来像这样:
它适用以下规则:
我的按钮看起来更丑,因为它在所有方面都有一个大的边框:
但是当我查看CSS时,应用规则没有区别.虽然我的元素是一个input
,但我的页面上也有"真正的"按钮,它们表现出相同的行为.
我尝试使用或不使用重置CSS运行我的页面,但这没有任何区别.我总是看到丑陋的样子.
当我在小提琴中运行他们的代码时,我得到了同样丑陋的结果.
这发生在同一台机器上同一浏览器的两个不同选项卡中,即Firefox 29.
这里有问题的代码:
button {
border-top: 1px solid #bfd1ed;
background: #5987d1;
background: -webkit-gradient(linear, left top, left bottom, from(#2662c3), to(#5987d1));
background: -webkit-linear-gradient(top, #2662c3, #5987d1);
background: -moz-linear-gradient(top, #2662c3, #5987d1);
background: -ms-linear-gradient(top, #2662c3, #5987d1);
background: -o-linear-gradient(top, #2662c3, #5987d1);
padding: 5px 10px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
-webkit-box-shadow: rgba(0,0,0,1) 0 1px 0;
-moz-box-shadow: rgba(0,0,0,1) 0 1px 0;
box-shadow: rgba(0,0,0,1) 0 1px 0;
text-shadow: rgba(0,0,0,.4) 0 1px 0; …
Run Code Online (Sandbox Code Playgroud)