波多野结衣 蜜桃视频,国产在线精品露脸ponn,a v麻豆成人,AV在线免费小电影

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了如何通過Bazel從JUnit測試執(zhí)行中找到指向Java源代碼文件的路徑的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我想通過JUnit測試檢查我們的monorepo代碼庫中的一個文本文件。JUnit測試通過bazel test命令執(zhí)行。如何將Bazel配置為將源代碼目錄路徑(而不是緩存的編譯JAR文件路徑)傳遞給單元測試?它可以是CLI參數(shù)、環(huán)境變量等。

推薦答案

要做到這一點,一種方法是使用data屬性,該屬性使文件在運行時可用于測試(和其他二進制文件),而對于Java,Bazel提供了用于查找數(shù)據文件的運行文件庫。例如:

BUILD

java_test(
  name = "TextFileTest",
  srcs = ["javatests/txtfile/TextFileTest.java"],
  data = ["text.txt"],
  deps = [
      "@bazel_tools//tools/java/runfiles:runfiles",
      "@maven//:junit_junit",
  ],
)

WORKSPACE

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

RULES_JVM_EXTERNAL_TAG = "4.2"
RULES_JVM_EXTERNAL_SHA = "cd1a77b7b02e8e008439ca76fd34f5b07aecb8c752961f9640dea15e9e5ba1ca"

http_archive(
    name = "rules_jvm_external",
    strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG,
    sha256 = RULES_JVM_EXTERNAL_SHA,
    url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG,
)

load("@rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
    artifacts = [
        "junit:junit:4.13.2",
    ],
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)

javatests/txtfile/TextFileTest.java

package txtfile;

import com.google.devtools.build.runfiles.Runfiles;

import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.Path;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;

@RunWith(JUnit4.class)
public class TextFileTest {

  @Test
  public void testTextFile() throws Exception {
    Runfiles runfiles = Runfiles.create();
    Path path = Paths.get(runfiles.rlocation("__main__/text.txt"));
    String line = Files.readAllLines(path).get(0);
    Assert.assertEquals(line, "this is text");
  }
}

text.txt

this is text
$ bazel test TextFileTest
INFO: Build option --test_sharding_strategy has changed, discarding analysis cache.
INFO: Analyzed target //:TextFileTest (0 packages loaded, 547 targets configured).
INFO: Found 1 test target...
Target //:TextFileTest up-to-date:
  bazel-bin/TextFileTest.jar
  bazel-bin/TextFileTest
INFO: Elapsed time: 0.288s, Critical Path: 0.01s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
//:TextFileTest                                                 (cached) PASSED in 0.3s

Executed 0 out of 1 test: 1 test passes.
INFO: Build completed successfully, 1 total action

請注意,在runfiles.rlocation("__main__/text.txt")中,__main__是工作區(qū)名稱,默認情況下為__main__。如果工作區(qū)文件中有workspace(name = "workspace name"),則工作區(qū)名稱將從中設置。

這篇關于如何通過Bazel從JUnit測試執(zhí)行中找到指向Java源代碼文件的路徑的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:中找到 執(zhí)行 指向 文件 測試 源代碼 路徑
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定