我即将开始使用C++编写的跨平台库.接下来,我打算为其他语言实现绑定,例如Python,Java等.这些库需要在主要平台上可用:win32,Linux和Mac OSX.
虽然该应用程序实际上是一个库,但是一些基本的控制台程序将与它一起捆绑以进行演示和测试.
在开始在Subversion中存储东西之前,我想提出一个最佳的文件夹结构.
我想的是:
/project //Top level folder
/bin //Binaries ready for deployment
/linux_amd64 //Linux AMD64 platform
/debug //Debug build - duplicated in all platforms
/release //Release build - duplicated in all platforms
/linux_i386 //Linux 32-bit platform
/macosx //Mac OS X
/win32 //Windows 32-bit platform
/cygwin //Windows 32-bit platform compiled with Cygwin
/vs.net //Windows 32-bit platform compiled with Visual Studio .NET
/win64 //Windows 64-bit platform
/build //Make and build files, IDE project files
/linux_amd64 //Linux AMD64 platform
/linux_i386 //Linux …Run Code Online (Sandbox Code Playgroud) 我的平台:带有NUnit 2.2.7的Visual C#2008 Express Edition
我的代码在一个项目中有一个解决方案,我的NUnit单元在同一个解决方案中的另一个项目中进行测试.
我一直在努力调试和单步执行NUnit测试.我在网上发现了一些建议调用以下内容:
NUnit.ConsoleRunner.Runner.Main(args);
Run Code Online (Sandbox Code Playgroud)
但这甚至没有编译 - 它有编译器错误:
错误1命名空间"NUnit.ConsoleRunner"中不存在类型或命名空间名称"Runner"(您是否缺少程序集引用?)
我添加了我能找到的每个装配参考,没有效果.
最后,这就是我一起攻击它并且它有效,但也许你好的读者可以提出一个更好的解决方案:
1)在我的测试项目中,我想要调试的测试用例的类名是MyTestClass.它有一个名为Init()的[TestFixtureSetUp]方法,实际测试用例在[Test]函数MyTest()中
2)在我的代码项目中,我有一个控制台程序TestProgram.cs,它编译成一个EXE.
在TestProgram.cs中,我以下列方式调用测试用例
// First instantiate the test class
MyTestClass tc = new MyTestClass();
// Call the TestFixtureSetup method
tc.Init();
// Now call the actual test
tc.MyTest();
Run Code Online (Sandbox Code Playgroud)
这有效,我可以调试并单步执行测试用例.
如果有人在没有支付额外插件的情况下使用Visual Studio 2008 Express有任何更好的建议,我感谢您的建议.
我正在研究C#.NET中的业务问题.我有两个名为C和W的类,它们将在不同的时间独立实例化.
类C的对象需要包含对类W的0 ... n个对象的引用,即C对象最多可包含n个W对象.
每个W对象需要包含对C类的1个对象的引用,即W对象包含在一个C对象中.
通常首先实例化C类的对象.稍后,将发现并实例化其W内容.在此之后,我需要将C和W对象相互交叉引用.
这有什么好的设计模式?我实际上有一些案例,其中涉及三个或四个类,但我们可以讨论两个类来保持简单.
我在考虑一些简单的事情:
class C
{
public List<W> contentsW;
}
class W
{
public C containerC;
}
Run Code Online (Sandbox Code Playgroud)
这将暂时起作用,但我可以预见必须编写相当数量的代码来跟踪所有引用及其有效性.我想在后面实现代码,只对容器进行浅刷新,并对所有引用类进行深度刷新.还有其他方法,它们有什么优势?
编辑11/3:感谢所有人的好答案和良好的讨论.我最终选择了jop的答案,因为它最接近我想做的事,但其他答案也有帮助.再次感谢!
我在DOxygen论坛上发布了一个问题,并在此发布它以获得更好的响应.
我有一个约2,900个功能的中等大小的C项目.我正在使用DOxygen 1.5.9,它成功生成了函数的调用图.有没有办法将其提取出来进行进一步分析?一个简单的配对列表就足够了,例如
Caller,Callee
FunctionX, FunctionY
...
Run Code Online (Sandbox Code Playgroud)
我对XSLT很满意,但我必须说DOxygen XML输出很复杂.有没有人以前这样做过,可以提供一些如何解析XML文件的指导?
提前致谢!
我正在实现一个数据库模型来存储iCal日历格式的20多个字段,并且面临着繁琐地将所有这些键入到SQLAlchemy model.py文件中的麻烦。有没有更聪明的方法?我正在寻找可以为我创建model.py文件的GUI或模型设计器。我将指定列名和一些属性,例如类型,长度等。
至少,我需要这位设计师为一张桌子输出一个模型。附加要求,按优先级从高到低排列:
我也对实现目标的其他方式持开放态度,也许使用GUI在数据库中创建表,然后将它们反映回模型中。
非常感谢您的反馈。
我开发了包含三个项目的Visual C#.NET 2008 Express Edition解决方案.我正在清理它以将其提交到CVS存储库.
在构建过程中创建的几个文件不必放在存储库中,因为它们将自动重新生成.
问题:是否有人可以建议将模式列表放入.cvsignore文件中,以便忽略这些生成的文件和文件夹?
我有一个类F的对象.我想使用Console.WriteLine输出对象的内容,以便快速和脏状态更新,如下所示:
Console.WriteLine(objectF);
这只会打印出控制台类的名称:
F
Run Code Online (Sandbox Code Playgroud)
我想以某种方式重载这个,以便我可以打印出一些关于对象及其属性的有用信息.
我已经有一个解决方法:在我的类中重载ToString方法,然后调用:Console.WriteLine(objectF.ToString());
但我宁愿使用更简单的语法.有任何想法吗?