AppHarbor可以在构建期间设置条件编译符号吗?也许只是:AppHarbor
我有一些无法在服务器上运行的测试(它们依赖于测试数据文件)。
如果AppHarbor可以设置条件编译符号,那么当符号出现时,我可以在测试中添加[Ignore]属性。
或者,在AppHarbor上运行时,是否有更好或不同的方法忽略特定测试?
或者,有没有办法让测试代码正确引用驻留在项目中的测试数据文件?
谢谢! 格伦
编辑:我通过将数据文件作为资源嵌入测试项目来完成测试。不理想,但现在还可以。但是,仍然想知道是否可以按照描述设置编译符号。
答案 0 :(得分:4)
设置" AppHarbor"编译符号是一个有趣的建议,但它目前在AppHarbor上不受支持。您可能希望将其添加为feature request。
运行测试时,Environment
appSetting设置为test
。你可以有条件地使用它来跳过某些测试。如果您希望拥有自己的配置,可以使用Web.Test.Config
文件应用任何必要的转换,以便确定是否应该运行测试。
这两种方法都在this article中描述。
通常我的建议是避免依赖运行测试时不存在的文件。这也将使应用程序在任何CI环境中工作。在您描述的情况下将文件包含为嵌入式资源是一个选项,但也应该可以将Build Action
属性设置为Content
将其包含在项目中,并且它可以在输出目录。
答案 1 :(得分:0)
想要添加@runesorensen的答案: 您要忽略测试的每个测试项目都应该有app.config文件,否则“Environment”应用程序设置将为null。