通过bazel执行茉莉花测试时未找到规格

时间:2019-07-03 23:38:27

标签: typescript bazel jasmine-node

我正在尝试在当前目录中使用bazel运行茉莉花测试,但是它抱怨没有找到任何规格。

我认为这与我提供的“ srcs”变量有关。 我尝试了[":spec/test.spec.ts"][":spec"],但是都没有用。

我使用的命令:bazel run // packages / core:unit_test

文件目录:

-包装

-核心

--- spec

---- test.spec.ts

jasmine_node_test(
    name = "unit_test",
    srcs = [":spec/test.spec.ts"],
    deps = [
        "@npm//jasmine"
    ],
)

test.spec.ts

describe("A suite is just a function", function() {
  var a;

  it("and so is a spec", function() {
    a = true;

    expect(a).toBe(true);
  });
});

Package.json

  "devDependencies": {
    "@bazel/bazel": "^0.24.1",
    "@bazel/buildifier": "^0.22.0",
    "@bazel/ibazel": "^0.10.2",
    "@bazel/typescript": "^0.28.0",
    "@types/node": "^12.0.0",
    "tslib": "^1.9.3",
    "typescript": "^3.4.5"
  },
  "dependencies": {
    "@bazel/jasmine": "^0.32.2",
    "@types/jasmine": "^3.3.13",
    "jasmine": "^3.4.0"
  }

我希望测试能够成功运行。

2 个答案:

答案 0 :(得分:0)

尝试使用受bazelbuild/rules_nodejs/examples的规则启发而来的glob

srcs = glob(["*.spec.ts"]),

答案 1 :(得分:0)

我在使用Bazel的示例应用程序中尝试了您的代码,似乎您需要将代码转换为JS ,因为您正试图在JS测试运行器中运行.ts文件

注意:在您的情况下,只需将其重命名为*.js(我已选中)即可。


示例代码实现您想要的

BUILD.bazel

load("@npm_bazel_typescript//:index.bzl", "ts_library")
load("@npm_bazel_jasmine//:index.bzl", "jasmine_node_test")

ts_library(
    name = "files_to_compile",
    srcs = ["test.spec.ts"]
)

jasmine_node_test(
    name = "sampletest",
    srcs = [":files_to_compile"]
)

OR

load("@npm_bazel_jasmine//:index.bzl", "jasmine_node_test")

jasmine_node_test(
    name = "sampletest",
    srcs = ["test.spec.js"]
)