这应该是显而易见的,但我无法让它工作......
我想要做的很简单:如果有警告,我希望我的编译失败并出现错误.是的,着名的TreatWarningsAsErrors......
我在我的C#项目属性中配置它

这导致TreatWarningsAsErrors我的csproj 中的预期部分:
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
Run Code Online (Sandbox Code Playgroud)
到目前为止private一切顺利,如果我在我的代码中添加一个无用的变量,它会导致编译错误:
private int unused;
Run Code Online (Sandbox Code Playgroud)
错误3警告错误:从不使用字段'XXXX.unused'
但整个问题是,我无法使其适用于装配参考问题.如果我有一个未知程序集的引用,编译器(devenv或msbuild)会发出警告,但我想要一个错误.
最终,我正在尝试配置一个gated check-in TFS构建配置,因此如果找不到 " 引用的组件'XXXX',TFS将拒绝提交. "警告.比修改构建过程模板更简单的东西会很棒.
我的整个开发团队都认为,静态方法是一件很糟糕的事情.
在某些情况下我真的没有看到任何缺点.当我之前需要无状态方法时,我总是为此目的使用静态方法.
我同意他们的一些观点,例如我知道他们很难测试(尽管这并非不可能).
我不知道的是,他们声称,静态方法总是保存在内存中,并将填充基本的内存使用量.因此,如果您在程序中使用100个静态方法,则在程序启动时,所有方法都会加载到内存中,并且会不必要地填充内存.此外,静态方法会增加内存泄漏的风险.
真的吗?
为了调用方法而必须创建一个类的新实例是非常不方便的.但这就是他们现在如何做到这一点,在方法中创建一个实例并调用该方法,这可能只是一个静态方法.
我正在研究几何图书馆.有200多个单元测试.
每当我选择"全部运行"时,有一个特别顽固的测试失败,但是当我单独运行该测试或者使用调试器时测试通过.我相信这个问题出现在我从视觉工作室'13转移到'15版的时候.
现在关于几何库的一些注意事项:
对象是不可变的.
测试之间没有共享对象.
所以我的问题:这种奇怪行为的可能原因是什么?
编辑:
[Test()]
public void Plane_IntersectionWithPlane_IdenticalPlane()
{
Plane testPlane = new Plane(new Direction(Point.MakePointWithInches(2, -1, 1)),
Point.MakePointWithInches(2, 1, 2));
Line found = (testPlane.Intersection(testPlane));
Line expected = new Line(new Direction(Point.MakePointWithInches(0, -1, -1)),
Point.MakePointWithInches(2, 1, 2));
Assert.IsTrue(found.Equals(expected));
}
Run Code Online (Sandbox Code Playgroud) 我一直在读Mocks和Stubs,他们的差异和用途.我仍然有点困惑,但我想我已经得到了它的主旨.
现在我想知道应用程序.我可以看到在测试场景中创建"假"对象的用法,其中实际对象太复杂而无法测试一个方面.
但是让我们考虑我的应用程序:我正在研究计算几何库.我们的库定义了点,线,linesegments,向量,多边形和多面体,以及一堆其他对象和所有常见的几何操作.任何给定对象都存储为点或方向列表或较低级别对象.但是这些对象都不会花费超过几毫秒的时间来生成.
当我测试这个库时,在任何地方使用Mocks/Stubs是否有意义?
现在我们只使用特定的测试用例.我们称它们为存根,但我认为它们不符合存根的技术定义.你觉得那个更好的词汇是什么?"测试用例"?"例子"?
SourceCode:https://bitbucket.org/Clearspan/geometry-class-library/src
编辑:请注意,我们正在努力在所有几何对象中保持不变性,因此测试操作结果只是有意义,而不是初始对象的状态更改.
我正在寻找一种有效的算法来确定多面体是否凸出.
我开始检查欧拉特征是2.我还检查每个面都是凸面的.但这仍然没有抓住很多案例.
我正在寻找一种算法,找到包围多面体的最小盒子.
我的想法如下:找到最大的一侧,并移动实体,使侧面与x轴对齐.找到遇到这一侧的下一个最大的一侧,并将其尽可能靠近z轴对齐,同时将另一侧放在x上.然后,计算x,y和z的最大差异.使用这些尺寸创建周围的形状,然后将框移回对象的原始位置.
对此有更有效的策略吗?我的想法是否忽略了一些角落案例?
编辑:现在假设要限制的对象是凸的.虽然,对一般情况的答案也是受欢迎的.
Suppose I have a set of 2d line segments that are all connected. I need an algorithm that finds the outermost segments in the set. That is, the minimal subset that bounds the same region.
Note: this is not the same as finding the convex hull of the points making up the segments.
Edit: On the top is the initial set of segments. Below that is the same outline with interior segments deleted. (Ignore the little grey crosses, they're just …
假设我有一个字典,然后调用.Keys,然后调用.Values,没有干预操作.密钥的排序是否与值的排序一致?
换句话说,第n个键是否与字典中之前的第n个值相对应?
c# ×6
polyhedra ×2
unit-testing ×2
.net ×1
convex ×1
dictionary ×1
line-segment ×1
mocking ×1
msbuild ×1
nunit ×1
static ×1
stubs ×1
tfs ×1
warnings ×1