【问题标题】:How to run tests on java code both uploaded to server如何对上传到服务器的 java 代码运行测试
【发布时间】:2019-11-25 19:43:39
【问题描述】:

我想编写一个可以这样工作的 Web 应用程序。一个用户上传单元测试,另一个用户上传可测试的代码,然后服务器在代码上运行测试并保存结果。我需要提示如何对服务器上的代码运行测试和/或有没有其他方法可以做得更好?

【问题讨论】:

  • 为什么你需要完全这样?通常人们将代码和测试提交给 git。然后是一些 CI/CD 工具,例如jenkins/gitlabci 运行它。如果所有测试都通过了,那么您将代码部署到服务器。
  • 我对 CI 和 git 测试不太熟悉。问题是,对于不知道如何使用 git 的人来说,漏洞过程也应该很容易,代码应该由一个人上传并由其他人进行测试,而不是一个人。这可以使用任何 CI 工具吗?如果是的话,我可以制作一些简单的网络表单进行上传,推送将由网络应用程序进行。

标签: java unit-testing server testng


【解决方案1】:

我不会采用您描述的方法。它有很多问题需要解决:

1) 确保用户提供的代码是安全的。例如。您不希望用户提供的代码关闭服务器。

2) 假设您知道如何使提供的代码安全。现在你必须弄清楚如何运行它。

3) 您需要在某处存储测试报告并以某种方式处理故障...如果测试失败,您可能希望回滚服务器更改。

4) 容易出错。由于用户只提供了纯字符串,他可能会在类名、方法名、导入和其他 100 项内容中出现拼写错误。

这些是最明显的问题,我认为人们可以提出其他问题。

我只会遵循标准做法

1) 一个人编写代码和单元测试(在结对编程的情况下,一个人编写)。

2) 同一个人将其提交给 VCS(现在 VCS 是必须的)

3) 构建自动化工具应该构建它并运行测试。 (如果你没有/不知道,你可以在本地构建项目)。

4) 执行完所有构建步骤(手动或自动)后,您应该决定是否要部署代码。根本不应该部署未经测试的代码(有人认为甚至不应该将损坏的代码提交到发布分支)

附言

您描述的方法可能仅在您正在开发一些编码实践网站时有效,人们在该网站上提供编码任务的解决方案。在这种情况下,您将拥有预定义的测试列表,这些测试将在用户提供的代码上运行。

【讨论】:

  • 非常感谢您的所有积分。我的想法几乎正是您在 ps 中所说的。 “讲师”将上传一组测试并提供要实现的接口。并且“学生”将实现接口,以便代码包含将要测试的所需方法。
  • 不建议向学生展示测试用例,只显示测试用例名称。因为学生可能会破解测试并创建满足测试但不满足实际要求的假代码。最好让学生上传代码。无论如何,您可以使用问题列表作为 TODO 列表并提出具体问题以获得更具体的答案。
  • 这是一个非常好的观点,非常感谢。但我的主要问题是如何测试上传的代码。您认为可以使用 CI 工具吗? Jenkins 或我应该为此使用哪种机制或技术?我什至不知道从哪里开始,所以我要求一些基本概念。
  • stackoverflow.com/questions/4389232/… 我会从这里开始。
猜你喜欢
  • 2015-06-27
  • 2011-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-23
  • 2011-04-25
  • 2016-09-19
  • 1970-01-01
相关资源
最近更新 更多