AppHarbor可以在构建期间设置条件编译符号吗?

时间:2012-02-22 05:44:42

标签: unit-testing conditional-compilation appharbor

AppHarbor可以在构建期间设置条件编译符号吗?也许只是:AppHarbor

我有一些无法在服务器上运行的测试(它们依赖于测试数据文件)。

如果AppHarbor可以设置条件编译符号,那么当符号出现时,我可以在测试中添加[Ignore]属性。

或者,在AppHarbor上运行时,是否有更好或不同的方法忽略特定测试?

或者,有没有办法让测试代码正确引用驻留在项目中的测试数据文件?

谢谢! 格伦

编辑:我通过将数据文件作为资源嵌入测试项目来完成测试。不理想,但现在还可以。但是,仍然想知道是否可以按照描述设置编译符号。

2 个答案:

答案 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。