我正在与一个开发Java应用程序的团队合作,使用以下完善的工具链进行自动构建,测试和持续集成:
典型的Jenkins作业将从Subversion获取Java源代码,并运行Ant目标来构建代码,运行自动化测试并创建部署工件。
我们正在考虑为Windows客户端编写.Net插件,以便从MS Excel访问我们的应用程序API。我们可能会使用C#或F#编写它 - 它是早期的,我们还没有确定一种语言,但F#似乎可以提供一些好处,能够使用基于组合器的表达API动作DSL。
我们希望在Linux上使用Mono尽可能多地完成这项工作,并使用我们现有的CI基础架构来构建和测试我们的软件。
我的第一印象是工具链看起来像这样:
有没有人有使用这种工具链开发的经验?我想回答的两个问题是:
答案 0 :(得分:2)
如果您正在开发可在Linux上开发的跨平台或服务器端应用程序(偶尔在Mac / Win上测试),那么在Linux上使用F#和MonoDevelop似乎是可行的方法。
但是,如果你的目标是Windows用户,我认为你不能在Linux上开发Excel插件。您肯定需要在Windows上运行Excel并进行测试,您可能还需要在Windows上进行(部分)开发(我认为集成是棘手的 - 尽管您可以开发和测试一些Linux上的核心功能。)
在Windows上,您可以使用free Visual Studio Shell with F#。 F#的MonoDevelop集成(希望)相当不错,但是Visual Studio可能会给你带来更好的体验,你需要使用Windows来完成很多任务无论如何 ......
答案 1 :(得分:1)
对于习惯于Java生态系统的开发人员来说,这种方法存在哪些主要缺陷?
您正在使用Linux操作系统开发Excel的扩展程序,主要是Windows。 Mono平台非常出色 - 但你可以遇到错误 - 无论是C#还是F#。它不像几年前那么大,但值得考虑。如果您决定坚持使用Mono / Linux平台 - MonoDevelop是您的最佳选择。
是否有更好的NAnt和NUnit替代方案来构建和运行自动化测试,特别是对于F#?
如果您计划使用F#,请查看FsUnit。它有一些很好的语法断言等等。它对NUnit是免费的,所以你不会处于未知的水域。