collectTestCode.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. const fs = require('fs');
  2. const path = require('path');
  3. function countLinesInFile(filePath) {
  4. const fileContent = fs.readFileSync(filePath, 'utf-8');
  5. const lines = fileContent.split('\n');
  6. return lines.length;
  7. }
  8. function countTestFilesLines(directoryPath) {
  9. let totalLines = 0;
  10. const files = fs.readdirSync(directoryPath);
  11. files.forEach(file => {
  12. const filePath = path.join(directoryPath, file);
  13. const stats = fs.statSync(filePath);
  14. if (stats.isDirectory()) {
  15. const testDirectoryPath = path.join(filePath, '__test__');
  16. if (fs.existsSync(testDirectoryPath)) {
  17. const testFiles = fs.readdirSync(testDirectoryPath);
  18. testFiles.forEach(testFile => {
  19. if (testFile.endsWith('.test.js')) {
  20. const testFilePath = path.join(testDirectoryPath, testFile);
  21. totalLines += countLinesInFile(testFilePath);
  22. }
  23. });
  24. }
  25. }
  26. });
  27. return totalLines;
  28. }
  29. const semiUiDirectoryPath = './packages/semi-ui'; // 替换成 semi-ui 文件夹的实际路径
  30. const totalTestLines = countTestFilesLines(semiUiDirectoryPath);
  31. console.log(`Total lines in test files: ${totalTestLines}`);