同时测试Angular Library,库组件和示例应用程序

时间:2018-08-05 08:28:23

标签: angular karma-jasmine karma-runner

我已经使用官方指南和其他帖子(例如@Todd Palmer的https://blog.angularindepth.com/creating-a-library-in-angular-6-87799552e7e5)创建了Angular库。

该库非常简单,它仅包含一个组件component.ts,其测试位于component.spec.ts中。

与该库一起,我还有一个示例应用程序,其中演示了如何使用component.ts。该示例应用由app.component.ts表示,该应用在app.component.spec.ts中具有自己的测试。

我的工作区的脚手架是由Angular CLI(v 6.0.8)创建的。至少对于我怀疑与我的案例有关的文件,工作空间的结构如下

workspace
 - projects
   - library-name
     - src
       - lib
         - component.ts
         - component.spec.ts
       - test.ts
     - karma.config.ts
 - src
   - app
     - app.component.ts
     - app.component.spec.ts
   - karma.config.ts
 - angular.json

如果我运行ng test library-name,则仅运行component.spec.ts的测试。

如果我未指定库名而运行ng test,因为我想同时测试组件和示例应用程序,则将发生以下情况:

  • 业力自动打开浏览器
  • 运行app.component.spec.ts的测试并将结果显示在刚刚打开的浏览器中
  • 如果我使用 ctrl + C 停止了该过程,则将启动一个新的过程并执行component.spec.ts的测试(即,第一个测试过程的中断将启动第二个测试过程)< / li>
  • 如果我再次使用 ctrl + C 停止测试,则最终一切都停止了,我返回了命令行

我的问题是,是否有一种方法可以在同一过程中同时运行app.component.spec.tscomponent.spec.ts的测试。

1 个答案:

答案 0 :(得分:1)

我知道它的旧帖子仍然没有得到答复,但是我调查了一下并找到了解决方法。

def add(x, y):
  return x + y

def do_twice(func, x, y):
  return func(func(x, y), func(x, y))

a = 5
b = 10

print(do_twice(add, a, b))

其中ng test example-ng6-lib-app --no-watch && ng test example-ng6-lib --no-watch 是根据问题所附的article名称。

请尝试一下