我熟悉 TDD,并在我的工作场所和自制的网络应用程序中使用它。然而,每次我在 Web 应用程序中使用 TDD 时,我都拥有对 Web 服务器的完全访问权限。这意味着我可以更新服务器,然后直接从服务器运行我的单元测试。我的问题是,如果您使用的是第三方网络托管服务商,您如何对它们运行单元测试?
您可能会争辩说,如果您的应用设计良好且构建过程合理且自动化,则无需在生产服务器上运行单元测试,但就我个人而言,我喜欢安心,因为知道一切都还在“重大更新后的“绿色”。
对于回答“部署前先测试一下”和“你们没有暂存服务器吗?”的每个人,我明白您的意思。我确实有一个登台服务器和一个 CI 进程设置。我的单元测试确实运行了,我确保它们在更新到生产之前都通过了。
我意识到在一个完美的世界里我不会关心这个。但我以前见过这种情况。如果某个文件未更新或未运行 SQL 脚本,则在运行单元测试时效果会立即显现,但如果不进行单元测试,可能会在相当长的一段时间内被忽视。
我在这里要问的是,如果只是为了满足我自己的强制性欲望,是否有任何方法可以在我无法在其上安装应用程序或远程安装应用程序的服务器上运行单元测试(例如,我只会拥有的服务器) FTP 访问以更新文件)?
最佳答案
我想我可能不得不争辩说,在生产服务器上运行单元测试并不是 TDD 的真正组成部分,因为从技术上讲,当您部署到生产环境时,您就已经过了“开发”阶段。
我是 TDD 的坚定支持者,当我向客户宣扬好处时,我经常发现自己在说“你不能一半采用 TDD,要么全有要么全无”
您可能应该拥有某种形式的自动化测试,您在部署“之后”执行这些测试,但这些不是 TDD 的一部分。
也许你应该再看看你的过程。
关于unit-testing - 您如何对远程托管的 Web 应用程序进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20511/