我目前在Visual Studio Code中使用版本0.10.0的PowerShell扩展。过去,每次运行脚本都会重置运行空间,因此如果对模块进行了更改,则会将更新后的模块导入到脚本中。
但是,出于某种原因,PowerShell运行空间不再被重置,因此在下次运行期间不会拾取模块中的更改。
PowerShell扩展中是否有设置可确保在每次运行脚本之间重置运行空间?
答案 0 :(得分:4)
Visual Studio Code的PowerShell插件中现在可用的设置import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { ProfileComponent } from './profile.component';
//import { RouterTestingModule } from '@angular/router/testing';
describe('ProfileComponent', () => {
let component: ProfileComponent;
let fixture: ComponentFixture<ProfileComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ProfileComponent ]
//,imports: [ RouterTestingModule ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ProfileComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should be created', () => {
expect(component).toBeTruthy();
});
});
解决了我的问题。
该设置默认为false,因此必须先启用它才能生效。
当它设置为true时,每次尝试通过脚本进行调试时都会重置PowerShell会话。这意味着:
可以通过将以下行添加到用户设置JSON文件
来启用它powershell.debugging.createTemporaryIntegratedConsole
答案 1 :(得分:2)
我仍然没有一个好的答案,但这是我在开发过程中为减轻问题所做的。
我注意到VS Code正在缓存每次运行之间的变量,并且它有效地运行了脚本,就像它是一个REPL一样。
由于PowerShell作用域的性质,您可以将代码包装在Invoke-Command -ScriptBlock {}
中,并且由于变量不能在其脚本块之外访问,因此您可以重新运行代码而无需担心在vs代码中保留对象