CI自动化
CI过程中,自动化的过程一般包括下列的内容:
- 编译代码
- 准备数据库
- 执行测试
- 分析代码
- 创建安装和部署内容
- 生成文档
TFS根据解决方案已经将一些过程直接集成了,如果需要扩展也可以使用MSBuild脚本进行
如果在其他的工具中进行集成,一般使用MSBuild脚本进行
CI中的测试
CI中自动化测试十分重要,通过自动化测试,可以由系统自动运行相关的测试以检测修改的影响.
unit tests:白盒
单元测试工具发挥的地方,如Nunit MSTest等
INTEGRATION TESTS
Integration tests usually take multiple pieces of functionality and test how they behave together. Such tests can involve two or more classes, assemblies, components, or even small programs that interoperate.
FUNCTIONAL TESTS
Functional tests, on the other hand, are sometimes associated with integration tests and sometimes with system tests. You extract functional tests from other types of tests to support your CI scenario.
ACCEPTANCE TESTS
Acceptance tests take fully integrated software with all its dependencies and test it against a normal environment. This means no mocking—only the real deal. You should test I/O, network, and database operations with specific configurations. Acceptance tests can be designed by the customer or domain specialist.
SYSTEM TESTS
System tests are also performed on fully integrated software, but the environment tends to mimic a production environment more than it does during acceptance tests.
This kind of test is hard to integrate within your build process; these tests tend to rely on specific hardware and software configurations. But if you strain a little, some system tests can be included in your automatic build and test schedule.
STABILITY TESTS
You may also want to test the stability of your software. Stability tests answer such questions as whether there are any memory leaks in your Windows service, whether your program can restore the database connection after hibernation, and so on.
Although in most cases it’s possible to automate these tests, they usually have no place in CI the process. They take too much time. You need hours to properly test place in CI the process.