Jest正在拿起旧版本的软件包,因此我的测试会失败,除非我使用--no-cache.我甚至可以删除包文件夹node_modules,Jest很乐意运行测试(几乎所有传递).
那么如何清除Jest缓存?
我有一些使用Angular TestBed的单元测试.即使测试非常简单,它们运行速度也非常慢(每秒平均1次测试).
即使在重新阅读Angular文档之后,我也找不到这种糟糕性能的原因.
不使用TestBed的隔离测试只需几秒钟即可运行.
单元测试
import { Component } from "@angular/core";
import { ComponentFixture, TestBed, async } from "@angular/core/testing";
import { By } from "@angular/platform-browser";
import { DebugElement } from "@angular/core";
import { DynamicFormDropdownComponent } from "./dynamicFormDropdown.component";
import { NgbModule } from "@ng-bootstrap/ng-bootstrap";
import { FormsModule } from "@angular/forms";
import { DropdownQuestion } from "../../element/question/questionDropdown";
import { TranslateService } from "@ngx-translate/core";
import { TranslatePipeMock } from "../../../../tests-container/translate-pipe-mock";
describe("Component: dynamic drop down", () => {
let component: DynamicFormDropdownComponent;
let fixture: ComponentFixture<DynamicFormDropdownComponent>; …Run Code Online (Sandbox Code Playgroud) 我正在将我的大部分开发过程转移到docker中,以确保计算机之间的并行开发环境,因此不会因版本不匹配等原因而出现奇怪的错误或问题.
所有这一切都很好,除了在docker中运行webpack-dev-server之外,构建过程比在我的计算机上本地运行时要慢得多.(比如在码头工作3-5分钟,在本地30秒到1分钟).有什么方法可以加快速度吗?这只是一个问题,Docker/webpack通过已安装的卷与我的硬盘驱动器上的大量文件进行交互吗?
如果重要的话,我的主机系统是一台运行High Sierra的Mac,配备16bg内存.
我正在运行docker for mac,docker -v返回:Docker版本17.12.0-ce,build c97c6d6
我希望所有这些都足够清楚,如果我能添加任何信息,请告诉我!
我注意到我的第一个测试需要 6 秒才能运行,但是,它非常简单。它检查 Card 组件是否成功渲染传递的子组件:
describe('Card component', () => {
test('renders children', () => {
const testString = 'TEST';
const TestCardChild: React.FC = () => {
return <p>{testString}</p>;
};
render(
<Card>
<TestCardChild />
</Card>
);
expect(screen.getByText(testString));
});
});
Run Code Online (Sandbox Code Playgroud)
我在另一台具有几乎相同规格的机器上运行了测试,它在几毫秒内运行。您知道为什么会发生这种情况吗?我应该为 VS code 分配更多 RAM,还是应该为 React 测试库应用任何设置?
感谢致敬
我正在Docker容器中运行node js官方映像,我注意到npm start命令比在Docker之外启动命令需要更长的时间.
我可以更改设置以使其运行更快吗?也许为容器分配更多内存?
作为参考,我将在下面粘贴相关文件.
Dockerfile:
FROM node:8.1
WORKDIR var/www/app
# Global install yarn package manager
RUN apt-get update && apt-get install -y curl apt-transport-https && \
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
apt-get update && apt-get install -y yarn
RUN npm install -g create-react-app
Run Code Online (Sandbox Code Playgroud)
我用来启动容器的命令:
docker run --rm -ti \
--link api-container:api \
--name my-container -p 3000:3000 \
-v $(pwd):/var/www/app nxmohamad/my-container \
bash
Run Code Online (Sandbox Code Playgroud)
并且启动脚本就是 NODE_PATH=. react-scripts …
docker ×2
unit-testing ×2
angular ×1
jestjs ×1
macos ×1
performance ×1
reactjs ×1
testbed ×1
ts-jest ×1
webpack ×1