- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个正在工作的 Bazel BUILD看起来像这样的文件:
package(default_visibility = ["//visibility:public"])
load("@io_bazel_rules_docker//nodejs:image.bzl", "nodejs_image")
load("@npm_bazel_typescript//:index.bzl", "ts_library")
# TODO run jest tests and stop build if test not passes
# TODO also run tests from dependent packages
load("@lbm//:jest.bzl", "jest_test")
jest_test(
name = "test",
srcs = glob(
include = ["**/*.ts"],
),
jest_config = "@lbm//:jest.config.js",
deps = [
"//packages/enums/src:lib",
"//packages/hello/src:lib",
"@npm//faker",
"@npm//@types/faker",
"@npm//express",
"@npm//@types/express",
"@npm//jest",
"@npm//ts-jest",
"@npm//@types/jest",
],
)
ts_library(
name = "lib",
srcs = glob(
include = ["**/*.ts"],
exclude = ["**/*.spec.ts"]
),
deps = [
"//packages/enums/src:lib",
"//packages/hello/src:lib",
"@npm//faker",
"@npm//@types/faker",
"@npm//express",
"@npm//@types/express",
],
)
nodejs_image(
name = "server",
data = [":lib"],
entry_point = ":index.ts",
)
load("@io_bazel_rules_docker//container:container.bzl", "container_push")
container_push(
name = "push_server",
image = ":server",
format = "Docker",
registry = "gcr.io",
repository = "learning-bazel-monorepo/server",
tag = "dev",
)
server
工作正常。但是运行
test
失败。
bazel test //services/server/src:test
,我得到以下输出:
INFO: Analyzed target //services/server/src:test (0 packages loaded, 0 targets configured).
INFO: Found 1 test target...
FAIL: //services/server/src:test (see /home/flolu/.cache/bazel/_bazel_flolu/698f7adad10ea020bcdb85216703ce08/execroot/lbm/bazel-out/k8-fastbuild/testlogs
/services/server/src/test/test.log)
Target //services/server/src:test up-to-date:
bazel-bin/services/server/src/test_loader.js
bazel-bin/services/server/src/test.sh
INFO: Elapsed time: 0.947s, Critical Path: 0.72s
INFO: 2 processes: 2 linux-sandbox.
INFO: Build completed, 1 test FAILED, 2 total actions
//services/server/src:test FAILED in 0.1s
/home/flolu/.cache/bazel/_bazel_flolu/698f7adad10ea020bcdb85216703ce08/execroot/lbm/bazel-out/k8-fastbuild/testlogs/services/server/src/test/test.log
INFO: Build completed, 1 test FAILED, 2 total actions
test.log
文件必须包含以下内容:
exec ${PAGER:-/usr/bin/less} "$0" || exit 1
Executing tests from //services/server/src:test
-----------------------------------------------------------------------------
● Validation Error:
Module ts-jest in the transform option was not found.
<rootDir> is: /home/flolu/.cache/bazel/_bazel_flolu/698f7adad10ea020bcdb85216703ce08/sandbox/linux-sandbox/3/execroot/lbm/bazel-out/k8-fastbuild/bin/services/server/src/test.sh.runfiles/lbm/external/lbm
Configuration Documentation:
https://jestjs.io/docs/configuration.html
ts-jest
不管用。运行时
jest
手动,我没有收到任何错误。
[jest.config.js][2]
在项目的根目录下是这样的:
module.exports = {
roots: ['<rootDir>/services/server/src', '<rootDir>/packages/hello/src'],
testMatch: ['**/__tests__/**/*.+(ts|tsx|js)', '**/?(*.)+(spec|test).+(ts|tsx|js)'],
transform: {
'^.+\\.(ts|tsx)$': 'ts-jest',
},
};
services/server/src/util.spec.ts:1:21 - error TS2307: Cannot find module './util'.
1 import { add } from './util';
~~~~~~~~
util.ts
文件到
srcs
像这样:
srcs = glob(
include = ["**/*.ts"],
),
ERROR: /home/flolu/Desktop/minimal-bazel-monorepo/services/server/src/BUILD:33:1: in args attribute of nodejs_test rule //services/server/src:test: label '//services/server/src:test_lib.js' in $(location) expression expands to more than one file, please use $(locations //services/server/src:test_lib.js) instead. Files (at most 5 shown) are: [services/server/src/index.js, services/server/src/util.js, services/server/src/util.spec.js]. Since this rule was created by the macro 'jest_test', the error might have been caused by the macro implementation
ERROR: Analysis of target '//services/server/src:test' failed; build aborted: Analysis of target '//services/server/src:test' failed; build aborted
INFO: Elapsed time: 4.487s
INFO: 0 processes.
最佳答案
编辑实际问题
我又看了一眼。留下下面的答案,因为我认为它里面有有用的东西。您的版本 build_bazel_rules_nodejs
比较老了。更新到最新版本 1.01
.您使用的是版本 0.42.2
我认为它有一些处理 npm 依赖项的奇怪方式。
http_archive(
name = "build_bazel_rules_nodejs",
sha256 = "e1a0d6eb40ec89f61a13a028e7113aa3630247253bcb1406281b627e44395145",
urls = ["https://github.com/bazelbuild/rules_nodejs/releases/download/1.0.1/rules_nodejs-1.0.1.tar.gz"],
)
"@bazel/typescript": "^1.0.1",
在您的 package.json 中,因为它们需要同步。您在 repo 中使用的其他库之间还有一些其他重大更改。我通过注释掉所有 docker 和其他不相关的东西来让它工作。更新这些应该不会太难。
ts-jest
.它的工作是让您的生活更轻松,而无需在运行测试之前进行单独的编译步骤。如果您的运行脚本形成
package.json
,那就太好了但是你有 bazel,它是关于定义依赖关系图的。这使得创建
ts_library
变得容易用于您的测试然后依赖于它,以及
jest_test
中的 javascript 输出
tsconfig.test.json
和
{
"extends": "./tsconfig.json",
"lib": ["jest"]
}
describe()
,
it()
, 等等。
tsconfigs.json
使用
ts_config
所以把它放在
/BUILD
load("@npm_bazel_typescript//:index.bzl", "ts_config")
ts_config(
name = "tsconfig.jest.json",
src = "tsconfig.test.json",
deps = [
":tsconfig.json",
],
)
ts_library
用于您的测试并定义要在
jest_test
中使用的 javascript 输出
load("@npm_bazel_typescript//:index.bzl", "ts_library")
ts_library(
name = "test_lib",
srcs = ["util.spec.ts"],
# References the test tsconfig
tsconfig = "//:tsconfig.jest.json",
deps = [
"//packages/enums/src:lib",
"//packages/hello/src:lib",
"@npm//faker",
"@npm//@types/faker",
"@npm//express",
"@npm//@types/express",
"@npm//cors",
"@npm//@types/jest",
],
)
filegroup(
name = "test_lib.js",
srcs = [":test_lib"],
output_group = "es5_sources",
)
load("@lbm//:jest.bzl", "jest_test")
jest_test(
name = "test",
srcs = [
":test_lib.js",
],
jest_config = "@lbm//:jest.config.js",
deps = [
# UPDATE HERE
":lib",
# END UPDATE
"//packages/enums/src:lib",
"//packages/hello/src:lib",
"@npm//faker",
"@npm//express",
"@npm//jest",
],
)
ts-node
.您甚至可以在
jestconfig.js
中导入它.不是你想要,但它表明依赖是存在的。我的假设是
jest
附近存在潜在问题或
ts-jest
,但我找不到任何东西。
关于typescript - Bazel 抛出 "Module ts-jest in the transform option was not found"的 Jest 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59433880/
当我调用 Bazel 命令并出现分析错误时,它只显示其中之一。例如: ERROR: /Users/oliver/src/github.com/monzo/wearedev/service.transa
我们正在生成许多 Go 源文件作为我们构建的一部分。以前我们使用了 genrule ( example here ) 导致生成的文件存储在 bazel-genfiles/ . 我们最近切换到使用自定义
有没有办法在 Bazel 中指定可选依赖项? 我想制定一个规则来在某种程度上反射(reflect) Kitware 的 ExternalData , 但我想看看我是否可以启用开发人员在树中编辑文件的工
我想知道特定于平台的默认 Bazel 构建标志是否可能。 例如,我们想要使用 --workspace_status_command,但这必须是 Linux 上的 shell 脚本,并且必须指向 Win
具体来说,我想从 Mac 主机对 Windows 工作人员运行测试。 评论 running bazel remote executor test on separate machines表明这是 Ba
我想知道特定于平台的默认 Bazel 构建标志是否可能。 例如,我们想要使用 --workspace_status_command,但这必须是 Linux 上的 shell 脚本,并且必须指向 Win
有没有办法指示 bazel 列出它找到的所有目标而不构建或测试它们? 最佳答案 bazel query 可用于发现 bazel 工作区内的目标(无需构建/测试它们) 例如; 查找给定包中的所有标签:
(来自https://groups.google.com/d/msg/bazel-discuss/XrtKLhH1bgI/B9xZn_aVAAAJ) 在我们使用 Bazel 构建的项目中,我使用了远程
在 bazel 构建期间,有一堆文本飞过,暂时显示然后从屏幕上删除。这发生在整个构建过程中。我尝试了几种重定向技术,将 stderr 重定向到标准输出但无济于事。我还尝试了 bazel 的详细标志。
我是 Bazel 的新手,并在 CentOS 7 上安装了 Bazel。我使用版本为“0.14.0- (@non-git)”的“yum install bazel”安装了它 启动 bazel 时,它总
我有几段 C++ 代码(模板、宏等),它们在使用某些方式时无法编译。手动编写一段代码来完成不应该编译的事情并验证它是否编译是很容易的,但这不是自动化的。看起来 Bazel 应该能够编译一段代码并自动验
鉴于使用 bazel 构建的相当大的存储库和多种语言的大量第三方依赖项(包括重型 docker 容器),我遇到以下问题: 运行 Bazel 查询会触发下载许多这些依赖项,从而导致查询性能下降。因此,问
假设我有一个 Bazel 宏,它使用生成器规则在给定输入文件的情况下生成输出文件: def my_generator( name, input_file,
在我的代码库中,在多个目标(cc_binary、cc_library 等)中包含相同的源文件通常是错误的。我想检测这个。 我可以 bazel query labels(srcs, //target:n
您好,我想读取 .bzl 文件中本地文件的内容。 print(onefile.basename) #content = ctx.read #content=ctx.file.o
我确信这已记录在某处,但无法在任何地方找到答案。 如果我有: ```bazel_rule( name = "foo", srcs = ["foo.cpp"], attr_bar
我正在开始使用 Bazel,如果有一种简单的方法可以集成 buildifier,我就在运行每次运行 bazel build 时? 最佳答案 您可以将此实现为测试规则,其中 ctx.file_actio
bazel test命令对标记为 size = small 的测试使用默认超时 75 秒在我的设置中(版本 0.12.0)(而 documentation 提到这是 60 秒) 有没有办法在 baze
$ python gencpp.py 此命令生成一个 cpp 文件 foo.cpp在工作目录中。 我想在 bazel 中运行此命令建之前可以包含foo.cpp在 cc_binary的 srcs属性。
一遍又一遍地阅读 Bazel 文档,以至于没有什么新鲜的地方,但我似乎无法掌握如何为 native 以外的变体设置配置和变体,例如--cpu 和--compilation_mode。 为了解释我对配置
我是一名优秀的程序员,十分优秀!